2010-05-31 7 views

Répondre

8

Pas exactement. Au lieu de cela, il supprime la génération du constructeur par défaut fourni par le compilateur. Considérez:

class Class1 { 
}; 

Class1 aura un constructeur par défaut généré par le compilateur, de sorte que vous pouvez appeler new Class1(), tandis que

class Class2 { 
    Class2(int); 
} 

ne sera pas un constructeur par défaut généré par le compilateur. Donc, vous ne pouvez pas appeler new Class2() à moins que vous déclarez explicitement un constructeur par défaut pour Class2:

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

Plutôt que de spécifier plusieurs constructeurs, la meilleure façon est d'utiliser l'argument par défaut comme ceci: class MaClasse { int i; public: MyClass (int i = 0) {this-> i = i} }; – Ashish

+1

@Mac: Parfois ce que vous suggérez est meilleur, parfois non - cela dépend du scénario exact. – sharptooth

Questions connexes