【问题标题】:Having trouble with composition C++组合 C++ 遇到问题
【发布时间】:2013-05-20 23:58:14
【问题描述】:

我正在尝试在 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;

}

我收到这些错误:

  • 语法错误:缺少';'在标识符“homeBranch”之前
  • 缺少类型说明符 - 假定为 int(因为它显然是一个对象而感到困惑?)
  • 'bankAccount' : 非法成员初始化:'homebranch' 不是基础或成员

我已经尝试了很多方法,但似乎无法修复这些错误,谁能提供一些关于如何将成员对象 bankBranch homeBranch 正确添加到类 bankAccount 的见解?以及如何正确使用初始化列表。

【问题讨论】:

  • 基本取bankBranch,移到bankAccount上面,参考上一题。

标签: c++ list object initialization composition


【解决方案1】:

C++ 是(几乎)单程、自上而下的语言。编译器必须在使用之前查看事物的声明。将bankBranch类的定义移到bankAccount类的定义之上。

【讨论】:

    【解决方案2】:

    只需将bankBranch 的定义放在您的班级bankAccount 之前。在此处查看实时示例:http://ideone.com/LuMzBt

    不要忘记在您的代码中包含stringiostream

    【讨论】:

      【解决方案3】:

      它没有将您的 BankBranch 识别为数据类型。 删除 cmets 可能会对您有所帮助。 在其他类之前定义 bankbranch 类也可能有所帮助。 此外,最好在单独的头文件中定义类,然后将它们分别包含在所有文件中。 只是一个建议!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多