标签:style blog io color os sp strong div on
1. 在A类中以B类的对象作为成员变量,称为类的组合(composition)。
2. 在组合时,一般在A类的构造函数初始化列表中要初始化B类(会调用B类的一个构造函数),
如果没有初始化B类,则会调用B类中可以不传参数的构造函数。
#include <iostream> using namespace std; #include <string> //-------------------------------------- class A { public: int m_ax ; int m_ay ; A(); A(int val,int vy); }; A::A() { } A::A(int vx,int vy) { this->m_ax = vx; this->m_ay = vy; } //-------------------------------------- class B { public: int m_bx ; B(); B(int val); }; B::B() { } B::B(int val) { this->m_bx = val; } //-------------------------------------- class C { public: A ac; B bc; C(); C(int vax,int vay,int vbx ); C(int vax ,int vay); C(int vbx) ; void show(); }; C::C() { } C::C(int vax ,int vay,int vbx) :ac(vax,vay),bc(vbx) { } C::C(int vax ,int vay) :ac(vax,vay) { }
C::C(int vbx):bc(vbx)//没有初始化的内部类对象,可以不写出来 ,也可以写出来ac()。 C::C(int vbx):bc(vbx),ac()
{ } void C::show() { cout<<"ac.m_ax = "<<ac.m_ax<<endl; cout<<"ac.m_ay = "<<ac.m_ay<<endl; cout<<"bc.m_bx = "<<bc.m_bx<<endl; } //-------------------------------------- int main() { C c1(1 ,2 ,3 ); c1.show(); while(1); return 0 ; } // ac.m_ax = 1 // ac.m_ay = 2 // bc.m_bx = 3
标签:style blog io color os sp strong div on
原文地址:http://www.cnblogs.com/mylinux/p/4094988.html