Я начал создавать проект на своем компьютере. проект, составленный на моем компьютере, но когда я скопировал его на другой компьютер, у него были фатальные ошибки (его работа на Visual C++ Express 2010). его все еще мало, поэтому я просто скопирую весь проект.C++ error LNK2005 и ошибка LNK1169
источник файл->main.cpp:
#include <iostream>
#include <string>
using namespace std;
#include "List.h"
void products_menu(){
return;
}
void stores_menu(){
return;
}
void costumers_menu(){
return;
}
int main(){
int option;
Products a;
do{
cin>>option;
if(option==1)
products_menu();
//option funcion
if(option==2)
stores_menu();
//option funcion
if(option==3)
costumers_menu();
//option funcion
}while(option!=4);
}
источник файл->List.cpp:
#include <iostream>
#include <string>
using namespace std;
#include "List.h"
void products_menu(){
return;
}
void stores_menu(){
return;
}
void costumers_menu(){
return;
}
int main(){
int option;
Products a;
do{
cin>>option;
if(option==1)
products_menu();
//option funcion
if(option==2)
stores_menu();
//option funcion
if(option==3)
costumers_menu();
//option funcion
}while(option!=4);
}
Заголовок files->list.h:
#pragma once
#ifndef LIST_H
#define LIST_H
#include <string>
using namespace std;
class Products{
private:
typedef struct node{
int id;
string name;
int price;
node* next;
};
//typedef struct node* nodePtr;
//nodePtr head;
public:
Products();
//~Products();
void addProduct(int id, string& name, int price);
void updateNameProduct(int id, string& oldName, string& newName);
void updatePriceProduct(int id, int oldPrice, int newPrice);
void printProducts();//
};
Products* first;
Products* nodePtr;
#endif
, и это ошибка, что дает мне:
ошибка LNK2005: "класс Продукты * nodePtr" (? NodePtr @@ 3PAVProducts @@ A) уже определен в List.obj
ошибка LNK2005: «класс Продукты * первой "уже определены в List.obj
ошибка LNK1169 (первый @@ 3PAVProducts @@ A?): один или несколько умножить определенные символы найдены
Я узнал, что его работа, когда я беру Продукты * сначала; Продукты * nodePtr; линий. но почему он не работает с ними? –
Объявите 'Продукты * сначала;' и 'Продукты * nodePtr;' как 'extern' в заголовке и один раз в' List.cpp'. –
Просто о чем подумать: у вас есть функции дерева, которые ничего не возвращают, но каждый имеет оператор возврата в качестве своего единственного содержимого. Затем у вас есть функция, возвращающая целое число, но без оператора возврата. Затем просмотрите https://stackoverflow.com/questions/8646421/using-extern-keyword-to-declare-variables-in-header-files-c –