您的位置:首页 > 编程语言 > C语言/C++

C++中对象间的相互操作例子(2005-6-1)

2005-06-01 21:07 519 查看
#include
using namespace std;

class A{
private:
int real;
int imag;
public:
char *string;
A(){
this->real = 10, this->imag = 20;
string = "from A()";
}
A(int a, int b){
this->real = a; this->imag = b;
string = "from A(), init a, b";
}
~A(){
cout << "Deleting class A" << endl;
}
int calcu(void){
return (real+imag)*2+4;
}
int chang(int a, int b){
real = a; imag = b;
}
};

class B{
private:
A *ap;
public:
B(A *p){
ap = p;
}
~B(){
cout << "Deleting class B" << endl;
}
int ControlA(){
cout << "Control A in B" << endl;
return ap->calcu();
}
int ChangA(int a, int b){
ap->chang(a,b);
}
};

class C : public B{
private:
A *pA;
public:
C(A *p) : B(p){
pA = p;
}
~C(){
cout << "Deleting class C" << endl;
}
void SetStr(){
pA->string = "Hi , I have been set!";
}
int ControlA(int a){
cout << "Control in A" << a << endl;
return pA->calcu();
}
};

void main()
{
A *pA = new A(14,2);
cout << "From Class A : "<< pA->calcu() << endl;
B *pB = new B(pA);
cout << "From Class B : "<< pB->ControlA()<< endl;
pB->ChangA(13,2);
cout << "From Class A : "<< pA->calcu() << endl;
cout << "String = " << pA->string << endl;
C *pC = new C(pA);
pC->SetStr();
cout << "String = " << pA->string << endl;
pC->ControlA(100);
pC->B::ControlA();
delete pC;
delete pA;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ string delete class include c