c++中的概念问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:46:00
在介绍静态函数中有这么一段话
“类的成员变量可以是一个类的对象,如果一个类会有对象成员变量,那么对象成员变量的构造函数可以在外层类的初始化段中调用”
这句话是什么意思?其中“对象成员变量”是什么概念?

定义了两个类A,B;其中A中只有基本类型的数据成员,B中有一个类型为A的对象成员变量和一个基本类型成员;在类B的构造函数初始化段(即在进入构造函数前)进行的对象成员变量的初始化构造。

理论讲完,还是看实践吧,给你源代码,你拿去运行一下,再思考一下,会对你有帮助的。

#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"Class A Constructor"<<endl;}
A(int m1, float m2):baseType_m1(m1),baseType_m2(m2){cout<<"Class A Constructor with parameters"<<endl;}
public:
virtual ~A(){cout<<"Class A Deconstructor"<<endl;}
public:
int baseType_m1;
float baseType_m2;
};

class B
{
public:
B():baseType_m(10),UDT_member(2,1.5){cout<<"Class B Constructor"<<endl;}
// 请注意UDT_member(2,1.5):这即是对象成员变量的构造函数
// 在外层类的初始化段中调用写法
public:
virtual ~B(){cout<<"Class B Deconstructor"<<endl;}
public:
A UDT_member; // UDT_member是抽象数据类型数据成员,即“对象成员变量”
int bas