2010-05-31 173 views

回答

8

不完全。相反,它会抑制编译器提供的默认构造函数的生成。试想一下:

class Class1 { 
}; 

Class1将有一个编译器生成的默认构造函数,这样你就可以调用new Class1(),而

class Class2 { 
    Class2(int); 
} 

不会有编译器生成的默认构造函数。所以,你不能叫new Class2(),除非你明确地声明默认构造函数Class2

class Class2 { 
public: 
    Class2(); 
    Class2(int); 
} 
+0

胜于指定多个构造函数,最好的办法就是用这样的默认参数: MyClass类{ INT I; public: MyClass(int i = 0){this-> i = i} }; – Ashish 2010-05-31 06:04:05

+1

@Mac:有时你建议的更好,有时候不会 - 取决于确切的情况。 – sharptooth 2010-05-31 06:10:12

相关问题