下面代码编译时会报错:
error C2079: “p”使用未定义的 class“person”
class person;
int main(void)
{
person p;
p.get_age();
return 0;
}
class person {
public:
int get_age() { return age; }
std::string get_name() { return name; }
private:
int age;
std::string name;
};原因:
因为对一个类来说,在我们创建它的对象之前该类必须被定义过,而不能仅仅被声明。
否则,编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义,然后
才能引用或者指针访问其成员。毕竟,如果类还没有被定义,编译器就不清楚该类到底有哪些成员。
本文通过一个具体的C++代码示例解释了为何在创建类的对象前必须先定义该类,而不是仅做声明。文章指出,若仅声明类,则编译器无法得知对象所需的存储空间及成员变量。
1492

被折叠的 条评论
为什么被折叠?



