C++ Ne peut pas appeler le constructeur directement dans petit exemple
Je me demandais, pourquoi je ne peux pas appeler un constructeur. Même ce petit exemple ne parvient pas à compiler avec le message:
Klassentest.cpp:24:27: error: cannot call constructor 'Sampleclass::Sampleclass' directly [-fpermissive]
Code:
#include <iostream>
using namespace std;
class Sampleclass
{
public:
Sampleclass();
};
Sampleclass::Sampleclass(){
}
int main() {
cout << "!!!Hello World!!!" << endl; //prints !!!Hello World!!!
Sampleclass::Sampleclass() *qs = new Sampleclass::Sampleclass();
return 0;
}
J'ai utilisé le Cygwin compilateur g++ dans la version 4.9.3-1.
Merci pour votre aide.
Qu'essayez-vous de faire? Pourquoi êtes-vous à l'aide de
C'est juste du C++... les constructeurs ne sont pas des fonctions. Voir this questions et réponses
J'ai besoin d'avoir un objet sur le tas, pas la pile. Ce n'est qu'un petit exemple où j'ai aussi le problème.
new
? Aussi, vous ne pouvez pas appeler un constructeur de C++.C'est juste du C++... les constructeurs ne sont pas des fonctions. Voir this questions et réponses
J'ai besoin d'avoir un objet sur le tas, pas la pile. Ce n'est qu'un petit exemple où j'ai aussi le problème.
OriginalL'auteur | 2015-12-04
Vous devez vous connecter pour publier un commentaire.
est faux.
Sampleclass
est un type toutSampleclass::Sampleclass
est un constructeur. Depuis la syntaxe correcte estvous devez spécifier le type ici.
Par conséquent, l'utilisation
à la place.
Notes:
Si vous ne le saviez pas: depuis C++11, vous pouvez simplement faire
dans la définition de la classe et le constructeur par défaut sera défini.
Oh merde, merci à toi.
OriginalL'auteur cadaniluk
Oui, vous ne pouvez pas appeler ctor directement.
De la norme, classe.ctor/2
Vous pourriez
Puis le ctor sera appelée.
OriginalL'auteur songyuanyao
Vous avez essayé de référence le constructeur comme un type lors de l'instanciation de la classe.
OriginalL'auteur Mike P
En C++ d'un constructeur est appelé automatiquement si vous définissez une nouvelle variable/instance de cette classe.
Suivez le lien ci-dessous pour voir quelques exemples simples, comment le constructeur peut être utilisé:
http://www.tutorialspoint.com/cplusplus/cpp_constructor_destructor.htm
OriginalL'auteur c-a