C++构造函数初始化类的特殊成员变量——类
2017-07-01 18:02
190 查看
A类 类变量、B类 变量作为D的私有成员,避免使用继承的手法。
构造函数,可以传参数把m_classA,m_classB初始化,也可以调用D类不传参数的构造函数初始化这两个成员,然后调用set方法设置参数。
头文件
cpp文件
构造函数,可以传参数把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(); }
相关文章推荐
- C/C++基础问答(1):通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++使用初始化清单和直接在构造函数内初始化成员变量的区别
- 【转】C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++特殊成员变量(静态、常量、引用)的初始化方法
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++成员变量、构造函数的初始化顺序 [转]
- C++ 成员变量的初始化与构造函数
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++成员变量、构造函数的初始化顺序
- C++特殊数据类型成员变量的初始化
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- 【c++程序】成员变量的初始化与构造函数(示例)
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法