我有一個奇怪的錯誤,當我編譯我的代碼,它說,它確實另一個類中存在的成員函數alreadys不是錯誤說未知函數已經存在錯誤
錯誤LNK2005「市民:無效__thiscall membershipType: :打印(無效)」 在 personType.obj PROJECT1ç已經定義(打印@ @@ membershipType QAEXXZ):\用戶\ okpal \源\回購\ PROJECT1 \ PROJECT1 \ Source.obj
和還
錯誤LNK1169一個或多個多重定義符號 發現PROJECT1 C:\用戶\ okpal \源\回購\ PROJECT1 \調試\ PROJECT1.EXE 1
我想知道如果有人可以幫助找出錯誤 我的類代碼如下
#include <iostream>
#include <string>
using namespace std;
class addressType { //class defintions and prototypes member variables
public:
addressType();
string streetAddressNum, streetName, streetType, city, stateInitials;
int zipCode;
};
class personType
{
public:
personType();
string firstName;
string lastName;
int personNum;
char gender;
int personID;
addressType address;
void setInterest1(string interest1);//mutator
void setInterest2(string interest2);
void printPerson();
string GetInterest1() const; // Accessor
string GetInterest2() const;
private:
string SetInterest1;
string SetInterest2;
};
//define membershipType class
class membershipType :public personType
{
public:
char membership_type;
char membership_status;
membershipType(); // 1st constructor
membershipType(char, char); // 2nd constructor
void print();
};
void membershipType::print()
{
cout << GetInterest1();
}
爲persontype源代碼
#include "personType.h"
personType::personType()
{
int personNum = 0;
int personID = 0;
}
addressType::addressType() {
int zipCode = 0;
}
void personType::setInterest1(string interest1) {
SetInterest1 = interest1;
}//mutator
void personType::setInterest2(string interest2) {
SetInterest2 = interest2;
}
string personType:: GetInterest1() const
{
return SetInterest1;
}// Accessor
string personType:: GetInterest2() const {
return SetInterest2;
}
void personType :: printPerson() {//constructor
cout << firstName << " " << lastName << " " << gender << " " <<
personID << " " << address.streetAddressNum << " "
<< address.streetName << " " << address.streetType
<< " " << address.city << " " << address.stateInitials
<< " " << address.zipCode << " " << SetInterest1 << " " << SetInterest2 << endl;
}
將'print'的定義移動到實現文件(.cpp) –
好了,終於有效了,我想知道它爲什麼起作用了? –
閱讀[odr](https://en.m.wikipedia.org/wiki/One_Definition_Rule) –