有个问题想请教下大家,有没有办法实现不同类中变量的关联?
就是说假如有2个类A和B,A中有个变量a,B中有个变量b,现在我的想法是如何让a和b关联起来,就是a的值和b的值总是相等的。当b的值改动时,a随着改动。
我把b初始化为a的引用或者在类b中一个a类型的指针指向a,在使用过程中都有问题,问下大家该怎么实现呢??谢谢··
就是说假如有2个类A和B,A中有个变量a,B中有个变量b,现在我的想法是如何让a和b关联起来,就是a的值和b的值总是相等的。当b的值改动时,a随着改动。
我把b初始化为a的引用或者在类b中一个a类型的指针指向a,在使用过程中都有问题,问下大家该怎么实现呢??谢谢··
{
A();
CString a;
}A *pMyClassA; //这个会被初始化为指向类A的this指针;这里省略。class B
{
B();
CString &b;
void FucnB();
}引用初始化
B::B()
b(pMyClassA->a)
{
}
编译没问题,但是使用时出问题
void B::FuncB()
{
AfxMessageBox(b); //这里抛出异常,访问非法
}
另外,一般也不要直接写死引用哪个变量,这么做是比较常用的:
class B
{
public:
B(CString& str);
...
};B::B(CString& str)
b(str)
{
}最后定义B对象的时刻,把pMyClassA->a做参数传进去。
如果楼主这样写main函数就没问题了~还是那句,写c的多注意内存~
void main()
{
pMyClassA = new A;
B obB;
obB.FuncB;
}
不过没有楼上的方法好~
楼上的main 大体应该是这样
void main()
{
pMyClassA = new A;
B obB(pMyClassA->a);
obB.FuncB;
}
打完收工
构造函数的时候,this指针还没初始化····这都没想到,晕~~