我有以下代码:
#include <iostream>
using namespace std;
class Base
{
private:
int i;
char ch;
public:
void showdata()
{
cout<<"Int:"<<i<<endl;
cout<<"Char:"<<ch<<endl;
}
//int pub_data ;
} ;
int main()
{
Base ob;
ob.showdata() ;
//cout<<"Public Data:"<<ob.pub_data<<endl;
return 0;
}
这个程序编译和运行都很好。输出显示i被初始化为0,ch被初始化为'\0'。
如果你注意到我在这个程序中注释了两条语句。第一是公共数据pub_data的声明,第二是main函数内打印该公共数据的语句。
现在问题是,如果我取消这两行注释,类的数据成员即i、ch、pub_data似乎没有被初始化,当它们被打印时,会显示垃圾值。
所以我的问题是公共数据在这里有什么区别?
我正在使用g++ 3.4.6。