c++中用构造函数赋值和用成员函数赋值有什么不一样

2024-12-27 10:12:56
推荐回答(5个)
回答1:

构造函数那个叫初始化不叫赋值。初始化和赋值的根本区别就在于初始化之前对象是无效的,赋值之前对象是有效的。初始化你不用考虑对象原来有什么东西,但是赋值要考虑。
举个栗子就是vector赋值需要释放原来的内容,初始化没这个问题,因为没有原来的内容。

回答2:

对象生成顺序:

1.系统先根据类的成员数据来划分空间;

2.系统初始化对象中的静态成员;

3.系统调用基类的构造函数;

4.系统调用本类的构造函数,将对象初始化;

初始化完成.
由上可见:构造函数在初始化的时候自动调用,不用用户去显示调用,而 函数初始化需要 用户手动调用!

而在 继承多态的体系中,使用构造函数,可以使父类的数据在初始化 对象本身的时候也初始化,这样 很方便,也不会出现 因为 没有显示 初始化带来的编程错误!

回答3:

用构造函数的话那个对象在产生的时候就已经执行了,而用成员函数的话则需要你调用了它才执行。。。

回答4:

区别 就是 构造函数 在生成对象的同时 就对变量赋值了 因为生成对象 要调用构造函数

成员赋值 在定义对象之后 ,再用对象调用成员函数时赋值

回答5:

用构造函数:当新建一个对象时就自动赋值,而用成员函数则要显示调用.