C++ 类构造函数、重载构造函数和对象初始化

C++ 类构造函数、重载构造函数和对象初始化,c++,class,constructor,initialization,default-constructor,C++,Class,Constructor,Initialization,Default Constructor,从第章类(I)中,重载构造函数: 但是这个例子也引入了一种特殊的构造函数:默认构造函数。默认构造函数是不接受参数的构造函数,它是特殊的,因为它在声明对象时被调用,但没有使用任何参数初始化。在上面的示例中,为rectb调用默认构造函数。请注意,rectb甚至不是用一组空括号构造的-事实上,空括号不能用于调用默认构造函数: 这是因为空括号集将使rectc成为一个函数声明,而不是对象声明:它将是一个不带参数且返回矩形类型值的函数 因此,据我所知: class someclass { publi

从第章类(I)中,重载构造函数:

但是这个例子也引入了一种特殊的构造函数:默认构造函数。默认构造函数是不接受参数的构造函数,它是特殊的,因为它在声明对象时被调用,但没有使用任何参数初始化。在上面的示例中,为rectb调用默认构造函数。请注意,rectb甚至不是用一组空括号构造的-事实上,空括号不能用于调用默认构造函数:

这是因为空括号集将使rectc成为一个函数声明,而不是对象声明:它将是一个不带参数且返回矩形类型值的函数

因此,据我所知:

class someclass {
    public:
        someclass() {
            std::cout << "Default constructor" << std::endl;
        }
        someclass(int arg) {
            std::cout << "Constructor that uses passed argument (" << arg << " in this case)" << std::endl;
        }
};


int main() {
    someclass object1;
    //outputs "Default constructor"

    someclass object2(1294);
    //outputs "Constructor that uses passed argument (1294 in this case)"
}
class-someclass{
公众:
someclass(){

std::cout您可以使用详细的构造方式:

 someclass object1 = someclass();

someclass object();
不会调用,因为编译器认为它是一个不带参数的函数声明,并返回一个someclass实例。

您可以使用详细的构造方式:

 someclass object1 = someclass();

someclass object();
不会调用,因为编译器认为它是一个不带参数的函数声明,并返回一个someclass实例。

您不需要。
someclass object();
是一个函数声明,就像那个教程所说的。它从来不是一个对象实例化。你没有。
someclass对象();
是一个函数声明,就像那个教程所说的。它从来不是一个对象实例化。