问题1: 如果写:int i; 在某些语境下保证会被初始化为0,单其他语境中不保证;于是有了“对象的初始化动作何时一定发生?”,但是不幸的是:规则太复杂;
- 因此,最佳处理办法就是:永远在使用对象之前就将他初始化。
对于基本数据类型和非基本数据类型规则分别是:
- 对于无任何的成员的基本数据类型,必须手工完成;
- 对于非基本数据类型,初始化责任落在了构造函数身上,规则为:确保每一个构造函数都将对象的每一个成员初始化。
构造函数中的 赋值和初始化:
赋值:
class my_class{
public:
my_class(const std::string& name,const std::string& address, const int id);