Bonjour,
En C++, chaque étape dans la réalisation de ce que je comprends petit à petit se solde par des journées entières de recherche afin de trouver pourquoi l'exemple type ne fonctionne pas !
Je déclare une classe toute con dans un .h (création d'un formulaire dans la fenêtre principale de l'appli) :
class CFormDVD
{ /* déclaration des membres privés */
private :
[...] (des variables)
public :
CFormDVD(HWND, HINSTANCE); // Constructeur => Dessine le formulaire
virtual ~CFormDVD(); // Destructeur => Détruit les contrôles
[...] (quelques autres fonctions)
};
J'écris le constructeur :
CFormDVD::CFormDVD(HWND hWndParent, HINSTANCE hInstance) {
[...] (des affectations de variables et des "CreateWIndow")
}
Je déclare une variable globale (ou non - le résultat est le même) destinée à devenir un objet de cette classe :
CFormDVD FormDVD;
Et enfin, je crée l'objet par la fonction "new" :
FormDVD = new CFormDVD(hWnd, hinst);
J'ai essayé :
- Pas de déclaration à part, mais déclaration/affectation,
- Déclaration de l'objet avec la classe (c'est un peu mieux mais inopérant quand même),
- Avec un pointeur,
Résultat immuable :
"no matching function for call to 'CFormDVD::CFormDVD() (A la ligne où se situe la déclaration de la variable)
note: candidates are: CFormDVD::CFormDVD(HWND__*, HINSTANCE__*) (A la ligne où est déclarée la fonction dans la classe dans le .h)
note: CFormDVD::CFormDVD(const CFormDVD&) (A la ligne où se situe le "{" introduisant le contenu de la classe dans le .h)
no match for 'operator=' in 'FormDVD = (operator new(72u), (<statement>, ((CFormDVD*)<anonymous>))) (A la ligne de création de l'objet)
candidates are: CFormDVD& CFormDVD::operator=(const CFormDVD&) (au même "{" que plus haut)
D'où vient ce "const CFormDVD&" ???????
Je ne vois pas comment faire plus simple et plus standard ! Mais comme toujours, c'est dans la complexité dans laquelle les exemples et méthodes simples ne fonctionnent de tout façon pas que le C++ se complaît ! [MODE MAUVAISE FOIS OFF]
Franchement, je bloque....
XBX