[C++]C++使用类前必须先定义类,不能只是声明类类型
2023-10-11 21:45
下面代码编译时会报错:
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;
};
原因:
因为对一个类来说,在我们创建它的对象之前该类必须被定义过,而不能仅仅被声明。
否则,编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义,然后
才能引用或者指针访问其成员。毕竟,如果类还没有被定义,编译器就不清楚该类到底有哪些成员。