c++简单问题求解答 有代码

#include<iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"A Constructing,data not evaluated"<<endl;
}
A(int a)
{
i=a;cout<<"A Constructing,data valuated"<<endl;
}
~A()
{
cout<<"A destructing,data valuated"<<endl;
}
private:
int i;
};
class B:public A
{
public:
B()
{
cout<<"B construting,data not evaluated"<<endl;
}
B(int a):A(a)
{
cout<<"B constructing ,A evaluated"<<endl;
}
B(int a,int b):A(a)
{
j=b;
cout<<"B constructing ,data evaluated"<<endl;
}
~B()
{
cout<<"B destructing"<<endl;
}
private:
int j;
A a;
};
int main()
{
B b1,b2(2),b3(3,4);
return 0;
}

每一行请详细点 谢谢啦

第1个回答  2016-06-13
#include<iostream> // 包含iostream头文件(为了下面可以使用cout函数)
using namespace std;
// 使用std这个命名空间,这个不懂的话可以直接搜索这句话,有很详细的解释!

class A // 自定义类,类的名字为A
{
public: // 表示 紧接着该句的下面、定义的是该类的公有成员
// 下面两个名字为A的函数都是类A的构造函数,构造函数在类创建时自动调用
// 构造函数一般用于做一些初始化操作
A() // 类A的构造函数,构造函数的名称必须和类名一样,所以也为A
{
cout<<"A Constructing,data not evaluated"<<endl;
// 输出显示一行字符串:构造函数执行中,数据(这里指私有成员变量i)未被赋值
//字符串后面输出一个换行符
}
A(int a) // 类A的构造函数的重载函数,这个函数有一个整形参数a
{
i=a;cout<<"A Constructing,data valuated"<<endl;
// 将该函数输入参数a的值赋值给该类的私有成员变量i,
// 然后输出一行字符串:构造函数执行中,数据(这里指私有成员变量i)已被赋值
// 字符串后面输出一个换行符
}
~A() // 类A的析构函数,在类销毁前自动调用(一般用于做一些释放工作)
{
cout<<"A destructing,data valuated"<<endl;
// 输出一行字符串
// 字符串后面输出一个换行符
}
private: // 表示下面定义的是类的私有成员
int i; // 定义整形私有成员变量i
};

// 自定义类B,其继承于上面定义的类A
class B:public A
{
public:
// 类B一共有三种构造函数
B() // B的构造函数
{
cout<<"B construting,data not evaluated"<<endl;
}

// B的构造函数的重载函数,
// 冒号部分表示:在调用这个构造函数前,先调用其父类的构造函数A(a),
// 其中的参数a就是这里B(int a)中的a
B(int a):A(a)
{
cout<<"B constructing ,A evaluated"<<endl;
}
// B的构造函数的又一个重载函数,只是多了个参数,你应该可以看懂了
B(int a,int b):A(a)
{
j=b;
cout<<"B constructing ,data evaluated"<<endl;
}
~B() // 类B的析构函数
{
cout<<"B destructing"<<endl;
}
private: // 表示下面定义定义私有成员
int j; // 定义整形私有成员变量j
A a; // 定义私有成员变量a,其类型为A,实际a就是类A的一个对象
};
int main() // 应用程序主函数
{
B b1,b2(2),b3(3,4); // 定义了三个类B的对象,分别使用了类B的三种构造函数
return 0;
}追问

我的意思是请帮忙分析下结果

相似回答