我正在尝试定义一个返回指向结构的指针的函数
#include <iostream>
using namespace std;
class abc
{
private:
struct n
{
int data;
};
public:
n* print();
};
n* abc::print()
{
n* q = new n;
q->data = 7;
return q;
}
Run Code Online (Sandbox Code Playgroud)
编译此程序时,将显示"标识符n未定义"错误.当在类中定义相同的函数abc时,为什么程序编译成功?
n是一个嵌套类.你需要用它来限定它abc::n.
注:一类的名称和范围也是namespace,因为n嵌套在abc,abc现在喜欢的namespace的n.
完整示例:
#include <iostream>
using namespace std;
class abc
{
private:
struct n
{
int data;
};
public:
n* print();
};
abc::n* abc::print()
{
abc::n* q = new abc::n;
q->data = 7;
return q;
}
Run Code Online (Sandbox Code Playgroud)