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