fork download
  1.  
  2. #include <string>
  3. #include <iostream>
  4.  
  5. #define PFUNC() do { std::cout << __FUNCTION__ << "\n"; } while (0)
  6.  
  7. class MyFoo;
  8.  
  9. class MyBar {
  10.  
  11. MyFoo* foo;
  12.  
  13. public:
  14.  
  15. MyBar(MyFoo* foo) : foo(foo) {
  16. }
  17.  
  18. void DoStuff() {
  19. PFUNC();
  20. foo->DoStuff();
  21. }
  22. };
  23.  
  24. class MyFoo {
  25.  
  26. public:
  27.  
  28. void DoStuff() {
  29. PFUNC();
  30. }
  31. };
  32.  
  33. int main() {
  34. MyFoo foo;
  35. MyBar bar(&foo);
  36.  
  37. bar.DoStuff();
  38. }
  39.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In member function ‘void MyBar::DoStuff()’:
prog.cpp:20:12: error: invalid use of incomplete type ‘class MyFoo’
prog.cpp:7:7: error: forward declaration of ‘class MyFoo’
stdout
Standard output is empty