Bonjour,
Je travaille avec Visual C++ 2008, sur un SDI avec un splitter partageant 2 vues : splitter4View(CFormView) et MyView(CView) avec comme 'vue principale' splitter4View.
Dans splitter4View, l'initialisation de GetDocument() se passe bien, mais pas pour MyView :
Dans CMyView.cpp, je mets :
et dans CMyView.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Csplitter4Doc* CMyView::GetDocument() const // la version non déboguée est en ligne { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(Csplitter4Doc))); return (Csplitter4Doc*)m_pDocument; }
Et le compilateur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public: Csplitter4Doc* GetDocument() const;
(la ligne 233 est la 2ème ligne de l'extrait du code .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 myview.cpp(233) : error C2556: 'Csplitter4Doc *CMyView::GetDocument(void) const'*: la fonction surchargée ne diffère que par le type de retour de 'int *CMyView::GetDocument(void) const' myview.cpp(233) : error C2371: 'CMyView::GetDocument'*: redéfinition*; types de base différents myview.h(11) : error C2143: erreur de syntaxe*: absence de ';' avant '*'
la ligne 11 est la 2ème de l'extrait de code .h)
Je ne vois absolument pas d'où vient cette fonction avec comme type de retour "int *" alors que Csplitter4Doc existe.
Je n'ai pas mis tout le code pour ne pas charger le sujet...
Si quelqu'un pourrait m'aider, je l'en remercie d'avance.
Christophe
Partager