yol*_*olo 10 c++ struct class function class-members
我的目标是:
class UserInformation
{
public:
userInfo getInfo(int userId);
private:
struct userInfo
{
int repu, quesCount, ansCount;
};
userInfo infoStruct;
int date;
};
userInfo UserInformation::getInfo(int userId)
{
infoStruct.repu = 1000;
return infoStruct;
}
Run Code Online (Sandbox Code Playgroud)
但编译器给出的错误是,在定义公共函数时getInfo(int),返回类型userInfo不是类型名称.
pic*_*c11 17
将嵌套结构类型设置为public是有意义的,因为用户代码应该能够使用它.此外,将结构的声明放在首次使用之前.在类范围之外使用scope resolution ::来引用嵌套类型.
class UserInformation
{
public:
struct UserInfo
{
int repu, quesCount, ansCount;
};
public:
UserInfo getInfo(int userId);
private:
UserInfo infoStruct;
int date;
};
UserInformation::UserInfo UserInformation::getInfo(int userId)
{
infoStruct.repu = 1000;
return infoStruct;
}
Run Code Online (Sandbox Code Playgroud)
就做UserInformation::userInfo UserInformation::getInfo(int userId)。
另外,你应该声明userInfopublic。
您需要更改 的成员的顺序UserInformation并将其放在的声明struct UserInfo 之上getInfo。编译器抱怨它无法计算出 for 的签名,getInfo因为它还没有看到其返回类型的定义。
此外,如果您从函数返回一个结构体,则该结构体的类型必须对调用者可见。public所以你还需要制作结构。
| 归档时间: |
|
| 查看次数: |
30814 次 |
| 最近记录: |