我正在尝试用C ++在类中声明一个成员对象,如下所示:
class bankAccount
{
public:
bankAccount(int, int, int, string, int);
private:
bankBranch homeBranch;
};
bankAccount::bankAccount(int accountNumber, int accountBalance, int homebsbnumber,
string homeaddress, int homepostcode) : homeBranch(homebsbnumber, homeaddress, homepostcode) {}
class bankBranch
{
public:
/** bankBranch(const int& bsbNumber, const string& address, const int& postCode)
{
this->bsbNumber = bsbNumber;
this->address = address;
this->postCode = postCode;
}; **/
bankBranch(int, string, int);
void setPostCode()
{
cout << "Please type in the postal code of your bankBranch: " << endl;
cin >> postCode;
}
void setBsbNumber()
{
cout << "Please type in the BSB Number of your bankBranch: " << endl;
cin >> bsbNumber;
}
void setAddress()
{
cout << "Please type in the address of your bankBranch " << endl;
cin >> address;
}
// Return methods for bsb number, address and post code
int getBsbNumber()
{
return this->bsbNumber;
}
string getAddress()
{
return this->address;
}
int getPostCode()
{
return this->postCode;
}
private:
int bsbNumber;
string address;
int postCode;
};
bankBranch::bankBranch(int bsbnum, string bankaddress, int bankpostcode) {
bsbNumber = bsbnum;
address = bankaddress;
postCode = bankpostcode;
}
我得到了这些错误:
我已经尝试过很多东西而且似乎无法修复这些错误,是否有人可以向我提供一些有关如何正确添加member-object bankBranch homeBranch到类bankAccount的见解?以及如何正确使用初始化列表。
答案 0 :(得分:1)
C ++是一种(几乎)单通道,自上而下的语言。编译器必须在使用之前看到事物的声明。将类bankBranch
的定义移到类bankAccount
的定义之上。
答案 1 :(得分:1)
只需在您的班级bankBranch
之前加上bankAccount
的定义即可。请在此处查看实时示例:http://ideone.com/LuMzBt
不要忘记在代码中加入string
和iostream
。
答案 2 :(得分:0)
它无法将您的BankBranch识别为数据类型。 删除评论可能对您有所帮助。 在另一个类之前定义bankbranch类也可能有所帮助。 此外,最好在单独的头文件中定义类,然后将它们分别包含在所有文件中。 只是一个建议!