我的目標是一個類,如:C++定義類的成員結構和成員函數返回它
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;
}
但是編譯器會發出錯誤的是,在公共職能getInfo(int)
的確定指標的返回類型userInfo
不是一個類型名稱。
爲什麼我們需要userInfo的限定符UserInfomation。默認情況下編譯器不應該在UserInformation的名字範圍中檢查嗎? – anaken78 2016-12-12 23:54:44
@ anaken78你,我或任何其他人認爲符合的編譯器_應該做的事是無關緊要的。這是**做的**。在函數的參數列表打開之前,該類不在範圍內,因此不能查找那裏的名稱不合格。我敢肯定,在解析&whatnot方面,背後的理由已經在其他地方詳細討論過了,如果你想搜索它的話。或者只是使用尾隨返回類型:'auto UserInformation :: getInfo(int userId) - > userInfo'(順便說一句,這些都是一些錯誤的命名選擇)。當在該位置聲明返回類型時,該類及其成員處於範圍內。 – 2017-05-26 17:59:13