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

#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; }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值