构造函数初始化问题
课本有如下一片段问题一:我不是自己定义了构造函数来初始化了吗?还关默认构造函数什么事呀?问题二:是不是如果定义的构造函数不是初始化列表形式的就会自动寻找默认构造函数来初始...
课本有如下一片段
问题一:我不是自己定义了构造函数来初始化了吗?还关默认构造函数什么事呀?
问题二:是不是如果定义的构造函数不是初始化列表形式的就会自动寻找默认构造函数来初始化?
问题三:第14行
//它的值又会因赋值操作而再改变一次,可以通过初始化列表显示的对name进行初始化
初始化后有值吗,默认0? 展开
问题一:我不是自己定义了构造函数来初始化了吗?还关默认构造函数什么事呀?
问题二:是不是如果定义的构造函数不是初始化列表形式的就会自动寻找默认构造函数来初始化?
问题三:第14行
//它的值又会因赋值操作而再改变一次,可以通过初始化列表显示的对name进行初始化
初始化后有值吗,默认0? 展开
1个回答
展开全部
一 ,你的name在前而构造函数在后,为name分配空间时还不知道你定义的构造函数,所以就用默认构造函数为name初始化。一般都是先定义构造函数再定义数据成员。
二,不是,有了自己定义的构造还是就不会再用默认的构造函数,因为定义的构造函数把默认构造函数给屏蔽掉了
三,再次初始化后,它的值与n的值相同
二,不是,有了自己定义的构造还是就不会再用默认的构造函数,因为定义的构造函数把默认构造函数给屏蔽掉了
三,再次初始化后,它的值与n的值相同
更多追问追答
追问
那const变量为什么还要自己用初始化列表的形式初始化,不是有默认构造函数吗
三,再次初始化后,它的值与n的值相同
那第一次、默认构造函数初始化后的值呢
追答
const数据成员比较特殊,它的初始化是在定义类时实现的,不是定义对象时实现的,只有在定义对象时才用到构造函数。
默认构造函数是个无参构造函数,它仅负责创建对象,而不做任何初始化工作。
与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询