可以的,当你定义了一个类名之后,编译器就知道它已经声明过了,就可以拿来用了。比如定义了class A{public: A();////其他函数;private:A m_a;//A类型变量}也是可以的,就像是在定义链表节点时一样struct node{int aa;node *next;}c++就是这样规定的,声明之后就可以直接拿来用。