C++构造函数初始化类的特殊成员变量——类

来源:互联网 发布:怎么申请开通80端口 编辑:程序博客网 时间:2024/06/02 02:47


A类 类变量、B类 变量作为D的私有成员,避免使用继承的手法。


构造函数,可以传参数把m_classA,m_classB初始化,也可以调用D类不传参数的构造函数初始化这两个成员,然后调用set方法设置参数。

头文件

#ifndef PATTERN_H#define PATTERN_Hclass A{public:A(int m);A();void set(int m);void print();private:int m_a;};class B{public:B(int m);B();void set(int m);void print();private:int m_b;};class D{public:D(int a,int b);D();void set(int a,int b);void print();private:A m_classA;B m_classB;};#endif


cpp文件


#include <iostream>#include "pattern.h"A::A(int  m){m_a = m;}A::A(){m_a = 0;}void A::set(int m){m_a = m;}void A::print(){std::cout<<"A "<<m_a<<std::endl;}B::B(int m){m_b = m;}B::B(){m_b =0 ;}void B::print(){std::cout<<"B "<<m_b<<std::endl;}void B::set(int m){m_b = m;}D::D(int a,int b):m_classA(a),m_classB(b){}D::D(){m_classA.set(0);m_classB.set(0);}void D::set(int a,int b){m_classA.set(a);m_classB.set(b);}void D::print(){m_classA.print();m_classB.print();}int main(){D classD;classD.print();classD.set(5,3);classD.print();}






阅读全文
0 0