1. 代码重用 体现于头文件。也就是面向对象的体现之一,还有多态性,稳定性等。
2. 包含
1 //简单的包含的程序代码如下: 2 #include <iostream> 3 using namespace std; 4 class A 5 { 6 public: 7 A(){x=0;} 8 A(int i){x=i;} 9 void get(){cout<<x;} 10 ~A(){} 11 private: 12 int x; 13 }; 14 class B 15 { 16 public: 17 B(){y=0;} 18 B(int i,int j,int k):a(i),b(j){y=k;} 19 A geta(){return a;} 20 A getb(){return b;} 21 int gety(){return y;} 22 private: 23 A a; 24 A b; 25 int y; 26 }; 27 int main() 28 { 29 B b(1,2,3); 30 b.geta().get();//类B中包含了类A的对象 a b 31 b.getb().get(); 32 cout<<b.gety(); 33 return 0; 34 }
重构中推荐用继承,因为实现起来比较简单。但是有一种情况下必须用包含。继承的时候被继承的对象必须在其子类初始化时被初始化。而包含则可以在其他时候再初始化。