如题,什么是内置,或者复合类型??如果是 一般的float,int,或者一个结构体的引用,是不是不初始化会出问题??
新手求解。
内置类型(built-in):像int double char这种C++基本类型
复合类型(composition):一般指包含有成员数据的自定义类型.
内置类型不用手动初始化没事,C++会对他们默认初始化,
初始值可能是0(静态对象),可能是随机数(堆,栈对象)
引用类型或const的类型,不管是不是int还是结构体或者类,都必须要显式初始化.
并且编译器不会为具有这些类型的class,struct,合成默认构造函数.
追答
一样的,复合类型是否一定要显示初始化,得看复合类型里面的成员对象, 它们是否都可以默认初始化.有一个不能默认初始化(比如有引用成员),复合类型就不可以默认初始化. 否则不一定就要显式初始化.比如你的类有个string成员,你对string默认初始化也没事. 初始化包括值初始化和默认初始化. 当然是将所有成员都初始化好.因为你不这么做,编译器隐式地