首页 > 代码库 > c++,类的组合

c++,类的组合

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

 

c++,类的组合