首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于成员对象指针传递有关问题

2012-04-15 
关于成员对象指针传递问题c1(在my函数中)调用其成员对象c2(的成员函数change_c1)改变自身成员变量a,但是报

关于成员对象指针传递问题
c1(在my函数中)调用其成员对象c2(的成员函数change_c1)改变自身成员变量a,但是报错,请教原因分析和解决办法。

C/C++ code
////////////////////////////////////////////////////////class c2;class c1{public:    void my();    c2 c2_inst;    int a;};void c1::my(){    a=1;    c2_inst.change_c1(this);}class c2{public:    void change_c1(c1 * p_c1);};void c2::change_c1( c1 * p_c1 ){    p_c1->a=0;}void main(){    c1 work;    work.my();}//////////////////////////////////////////////////////////

报两个错误:
error C2079: 'c1::c2_inst' uses undefined class 'c2'
left of '.change_c1' must have class/struct/union

[解决办法]
交换一下 c1, c2 定义的顺序
C/C++ code
class c1;class c2{public:    void change_c1(c1 * p_c1);};class c1{public:    void my();    c2 c2_inst;    int a;};void c1::my(){    a=1;    c2_inst.change_c1(this);}void c2::change_c1( c1 * p_c1 ){    p_c1->a=0;}void main(){    c1 work;    work.my();}
[解决办法]
在使用c2之前必须要有c2的定义,否则只能使用指针或者引用

热点排行