[英]parent class default constructor to be enter by user then through inheritance - C++
在我的子类中,当我使用继承并设置默认值时: UserAccout("user","pass");
是否可以从cin
获取输入?
这是我的代码示例。
我有我的父类
class UserAcct
{
private:
string userName;
string userPassword;
public:
UserAcct(string newUserName, string newPassword);
~UserAcct();
};
这是 UserAcct.cpp
UserAcct::UserAcct(string newUserName, string newPassword)
{
userName = newUserName;
userPassword = newUserName;
}
这是我的孩子班,可以这么说
class GameSettings : public UserAcct
private:
ofstream odataBase("gameSettings.txt", ios::app);
ifstream idataBase("gameSettings.txt", ios::app);
int settingSet;
public:
GameSettings(int newSettings);
子类.cpp
GameSettings::GameSettings (int newSettings) : UserAcct("user","pass")//this right here
{
settingsSet = newSettings;
}
附: 由于某种原因,继承不起作用,我不确定为什么。 在:
在“ : UserAcct("user","pass");
之前的子类 .cpp 下,我收到一条错误消息
错误:应为“{”
问题 1:
您可以通过进行函数调用从cin
获取输入。
GameSettings::GameSettings (int newSettings) : UserAccout(getUserName(), getPassword()) {}
其中getUserName()
可以是GameSettings
的static
成员函数或非成员全局函数。
static std::string getUserName()
{
std::string name;
cin >> name;
return name;
}
getPassword()
可以是一个类似的函数。
问题2:
您看到编译器错误,因为您以;
结束了以下内容;
.
GameSettings::GameSettings (int newSettings) : UserAccout("user","pass");
^^^
;
需要替换为{}
以及函数体内的任何其他内容。
PS您正在使用UserAcct
和UserAccout
。 那需要修复。 也许你应该把它拼出来以避免将来混淆。 使用用户UserAccount
。
您的实现需要一个主体:
GameSettings::GameSettings (int newSettings) : UserAccout("user","pass") { }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.