1、构造函数和析构函数为什么没有返回值?构造函数和析构函数是两个⾮常特殊的函数:它们没有返回值。这与返回值为void的函数显然不同,后者虽然也不返回任何值,但还可以让它做点别的事情,⽽构造函数和析构函数则不允许。在程序中创建和消除⼀个对象的⾏为⾮常特殊,就像出⽣和死亡,⽽且总是由...
那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。下面有一个例子,你可以测试看看:public class MyPrint { public void MyPrint(){ ...
(1)(3) 不会有影响,(2)(4) 就会有歧义。 以(2) 为例,Text()调用了无参数构造函数,该构造函数返回 int 值 1。Text 类内还有一个带参构造函数Text(int i),于是混乱来了。按照 C++ 原本的规定,Text b = Text();这句话是用默认构造函数创建一个临时对象,并用这个临时对象初始化 b。此时,b.x 的值...
构造函数和析构函数是两个非常特殊的函数:它们没有返回值。这与返回值为void的函数显然不同,后者虽然也不返回任何值,但还可以让它做点别的事情,而构造函数和析构函数则不允许。在程序中创建和消除一个对象的行为非常特殊,就像出生和死亡,而且总是由编译器来调用这些函数以确保它们被执行。如果它们有返回值,要么...
为什么构造函数没有返回值? 意见(1) 我认为构造函数隐含的返回值就是this,因为构造函数是在类的对象产生时自动调用。构造函数被调用也就意味着产生了一个对象,而this指针是与对象实体相关联的,所以我认为它返回的就是this。举例如下: class A { public: ...
构造函数和析构函数是两个非常特殊的函数:它们没有返回值.这与返回值为void的函数显然不同.后者虽然也不返回任何值,但还可以让它做点别的事情,而构造函数和析构函数则不允许.在程序中创建和消除一个对象的行为非常特殊,就像出生和死亡,而且总是由编译器来调用这些函数以确保它们被执行.如果它们有返回值,要么编译...