您的位置:首页 > 编程语言 > C语言/C++

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

2017-07-01 18:02 190 查看
A类 类变量、B类 变量作为D的私有成员,避免使用继承的手法。

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

头文件

#ifndef PATTERN_H
#define PATTERN_H
class 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();
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐