我有两个课程,一个是" bank"和一个"帐户"。 Account的构造函数接受一个int和一个字符串。银行应该有两个类型为" account"在里面。是否可以拥有两个"帐户"字段初始化列表中的对象是动态分配的,而不是静态值?
这是我有静态分配它的代码
class Bank
{
public:
Bank():checkings( 500, "C"), saving( 300, "s"){} //predfined int and string
private:
Account checkings;
Account saving;
};
有可能这样做吗?我希望构造器根据用户输入动态分配其字段。我一直在收到错误,所以我不确定我的语法是否错误。
class Bank
{
public:
Bank():checkings( int val, string s), saving( int val, string s){} //dynamic
private:
Account checkings;
Account saving;
};
另外,如何在.cpp文件中调用这种类型的构造函数?
答案 0 :(得分:2)
您不能在成员初始值设定项中放置声明(如int val
),只能放置表达式(可以包含以前声明的变量)。
看起来好像你想要:
class Bank
{
public:
Bank(int val, std::string s) : checkings(val, s), saving(val, s) {}
// ...
};
或:
class Bank
{
public:
Bank(int check_val, std::string check_s,
int sav_val, std::string sav_s) :
checking(check_val, check_s), saving(sav_val, sav_s) {}
// ...
};