关于c++的一些问题……大一新生刚接触

1 定义一个类之后去创建一个它的对象,类的定义里没有构造函数,然后输出对象的成员,是乱码 乱码这个值是谁给的?

怎么是乱码呢??是不是机器的问题??

如果没有定义构造函数,那么就是使用的默认构造函数,所有成员也都有一个默认的初值,可能是0,null或者一个随机的数据。

系统分配了内存,这块内存原来可能是做别的事情的,用完被释放,但是处于性能考虑不会清零,你分配的时候也不会初始化,所以是随机的内容。
如果是VC++调试版本的程序,则会被初始化成0xccccc...,所以如果是字符串,你会看到“烫烫烫……”

如果没有为这个成员进行初始化,一般就是乱码。
如果这个成员不是字符串,而你按字符串输出,就是乱码。

C++不进行初始化的成员变量,值是随机的,你想一下你给它分配了内存,这块内存之前可能存放其它数据,现在没用了才可以被分配,你不赋初值内存中还是存放之前的数据,不是谁给的,跟构造函数无关,未声明构造函数,系统默认有一个空的构造函数,public xxxxx(){ },无参,也没有赋值的语句

你没有未分配的空间,计算机就随机分配。

你定义了类的对象,当时该类的成员确实随机值,打印出什么都有可能,视你成员变量的类型来确定