C++ 类对象指针的使用 急!急

来源:百度知道 编辑:UC知道 时间:2024/05/28 03:39:29
在类A中,有一个嵌套类B,我想在类B里对类A的成员变量进行操作。请问如何实现啊?
类A的成员变量不可以是静态变量。
思路:在外部创建类A的实例的时候,在类A里也创建类B的一个实例,把类A对象的指针传递给类B,这样类B得到了类A的指针,就可以对他的成员变量进行操作了。以上说的有可能有错误,但是,大概思路是这样的。望知道的人,帮我解答一下。真的很急。我都想了6天了,还没有想通这个问题。急!跪谢!
C++里:类A中有一个类B,类B就叫“嵌套类”,类A就叫“外围类”。
java里:类A中有一个类B,类B就叫“内部类”,类A就叫“外部类”。

多谢zmx1104的帮助。按照你的方法我实现了!谢谢你!
我想再问一个问题:
有一个动态库DLL,里有一个函数Func1(),用来接受Server发过来的数据,然后存放起来,将一个BOOL型变量设置为TRUE。还有一个函数Func2(),用来读存放起来的这个数据,首先判断BOOL型变量是否为真,真则读,假则返回-1。

有一个C++程序。调用Func1()函数,来接受数据。然后再调用函数Func2()来读数据。

问题是:当我调用Func1()以后,马上再调用Func2()函数,结果Func2()返回-1。但是当我调用Func1()以后,然后设置一个AfxMessageBox,再调用Func2()函数,结果Func2()返回读到的值。

原因是:当我调用Func1()以后,Server还没有把数据发过来,再调用Func2()函数时,BOOL形变量还是假呢,所以返回-1。

解决:我不想在C++程序里,弹出MessageBox, 那应该怎么处理呢?或者说可不可以,让调用Func2()函数,读失败后,停止一段时间呢,然后再读!

谢谢你的帮助。在此重谢了!不明白我的问题的可以再问!

#include <iostream>
using namespace std ;

class A
{
public:
int i;
public:
class B;
B* pB;
A();
};

class A::B
{
A *pA;
public :
B(A *pA) : pA(pA){}
void Set(int i)
{
pA->i = i;
}
};

A::A()
{
pB = new B(this) ;
}

void main()
{
A a;
a.pB->Set(100);
cout<<a.i<<endl;
}

看看这段代码是不是你想要的。

如果这是你的某个设计,可以说这个设计一定挺糟。原因在于,类B为A的嵌套类,如:
class Studeng
{
public:
class Date
{
public:
int year;
int month;
int day;
void Set(A *pa);
};

private:
Data dt;
};
嵌套类在类A中必须要有有一个对象, 而B类中有一个函数传递A的指针,进行操作。问题搞得很复制,如果这样的化,不如用C了。嵌套类一般都是作为主类的成员,其操作一般都由主类如A来完成。另一个类要想操作A的成员,可以把它作为一个独立的类,并声明为A类的友