[C++]C++使用类前必须先定义类,不能只是声明类类型

来源:互联网 发布:绝对值用c语言怎么写 编辑:程序博客网 时间:2024/05/15 14:55

下面代码编译时会报错:

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;};

原因:

因为对一个类来说,在我们创建它的对象之前该类必须被定义过,而不能仅仅被声明。

否则,编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义,然后

才能引用或者指针访问其成员。毕竟,如果类还没有被定义,编译器就不清楚该类到底有哪些成员。

原创粉丝点击