vc++请解释,不是很明白

来源:百度知道 编辑:UC知道 时间:2024/06/19 03:05:27
#include<iostream.h>
class Ex
{
public:
Ex(int x, char c='c');
~Ex()
{
cout<<'B'<<endl;
}
void outdata(void)
{
cout<<ch<<da<<endl;
}
private:
int da;
char ch;
};
void main()
{
Ex w(3,'a'),y(1);
Ex z[2]={Ex(10,'a'),Ex(1,'d')};
w.outdata();
y.outdata();
z[0].outdata();
}
Ex::Ex(int x,char c):da(x),ch(c)
{
cout<<'A'<<endl;
}

我按照你的代码,给你说一下每行的意思:
#include<iostream.h> ——包含头文件iostream.h
class Ex ——定义一个类Ex
{
public: ——公有成员关关键字
Ex(int x, char c='c'); ——类Ex的一个构造函数,它有二个形参
~Ex() ——类的析构函数
{
cout<<'B'<<endl; ——输出字符"B"
}
void outdata(void) ——函数中的一个方法,名字是outdata
{
cout<<ch<<da<<endl; ——方法的作用是输出私有成员cd和 da
}
private: ——私有成员关键字
int da; ——受保护的成员da,为整形的
char ch; ——受保护的ch,为字符形的
};
void main() ——入口函数main函数
{
Ex w(3,'a'),y(1); ——定义了类Ex的实例W,但是此处有错误,因为你前面没有给出y的构造函数,你好好看一下,是不是前面第6行你少写了东西。
Ex z[2]={Ex(10,'a'),Ex(1,'d')}; ——用数组初始化了2个类Ex的实例
w.outdata(); ——此处也有错误,你可能想输出实例w的3和“a”,但是在前面的构造函数中你没有赋值代码ch=c,da=d,所以这里你无法正确输出你想要的东西。
y.outdata(); ——后面的东西同上
z[0].outdata();
}
Ex::Ex(int x,cha