Header-Terror 8[
-
Hallo,
ich habe momentan folgendes (meiner Meinung nach schon gelöstes) Problem.
Ich habe eine Klasse MainWindow. In dieser wird eine Klasse ABC::Menu benutzt (ABC ist ein Namespace).
Die Klasse ABC::Menu selbst benötigt für eine Funktion ein MainWindow Objekt. Soweit, so gut.Geheadert sieht das so aus:
// MainWindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H class MainWindow; #include "Menu.h" class MainWindow { // ... ABC::Menu menu_; }; #endif// Menu.h #ifndef MENU_H #define MENU_H namespace ABC { class Menu; } #include "MainWindow.h" namespace ABC { class Menu { // ... void blub(MainWindow* window); }; } #endifMöchte ich nun die zu Menu.h gehörende CPP-Datei kompilieren, beschwert sich der freundliche MSVC 8.0 Compiler:
'MainWindow::menu_' verwendet undefiniertes class 'ABC::Menu'
Aber warum? Normalerweise macht man das doch so, oder nicht?
Die MainWindow.cpp kompiliert übrigends ohne Probleme.Für einen hilfreichen Tipp wäre ich sehr dankbar, langsam regt mich C++ schon wieder auf :p.
-
#if !defined(MAINWINDOW_H__INCLUDED) #define MAINWINDOW_H__INCLUDED #include "Menu.h" class MainWindow { ABC::Menu menu_; }; #endif // MAINWINDOW_H__INCLUDED#if !definded(MENU_H__INCLUDED) #define MENU_H__INCLUDED class MainWindow; namespace ABC { class Menu { void blub(MainWindow* window); }; } #endif // MENU_H__INCLUDED... wofür so viel include's?