c++ qt deklaracja obiektu w klasie nadrzednej klasy podrzednej zasięg widoczność
Ostatnio zmodyfikowano 2016-04-28 18:20
michal11  | 
» 2016-04-28 02:04:59 Podejrzewam, że QDebug() jest singletonem ew. zwraca jakąś zmienną globalną (podobnie do cin/cout).  | 
 | 
alien1983 Temat założony przez niniejszego użytkownika  | 
» 2016-04-28 18:20:26 Poprawiona wersja z dziedziczeniem działa bez błędów. a.h #ifndef A_H #define A_H #include <iostream> #include <QObject> #include <QtCore/QDebug>
  class C; class B; class A     : public QObject { public:     A();          C * cobject;     B * bobject;     test();     test2();     testB(); };
  #endif  
  b.h #ifndef B_H #define B_H #include "a.h"
  class B     : public A { public:     B();     test();     OK(); };
  #endif  
  c.h #ifndef C_H #define C_H #include "a.h"
  class C     : public A { public:     C();     test();      };
  #endif  
  a.cpp #include "a.h" #include "b.h" #include "c.h" A::A() {      }
  A::test() {     B bobject;     C cobject;     bobject.OK();     qDebug() << "metoda klasy A Rodzic"; }
  A::test2() {     qDebug() << "Lulan";      }
  A::testB() {      }
  b.cpp #include "a.h" #include "b.h" #include "c.h"
  B::B()     : A() {      }
  B::test() {     qDebug() << "metoda klasy B Potomek A";      }
  B::OK() {     cobject->test();     qDebug() << "OK";      }
  c.cpp #include "c.h" #include "b.h" #include "a.h"
  C::C()     : A() {      }
  C::test() {     qDebug() << "metoda klasy C Potomek A";          bobject->test(); }
  main.cpp #include <QCoreApplication> #include "a.h" int main( int argc, char * argv[] ) {     QCoreApplication a( argc, argv );     A aObject;     aObject.test();     return a.exec(); }
  w klasie main tworzony jest obiekt klasy A w klasie A obiekty klas B i C (potomki klasy A) z obiektu klasy A wywołuję metodę obiektu klasy B metoda obiektu klasy B wywołuje metodę z obiektu klasy C metoda klasy C wywołuje inną metodę z klasy B niż była wywołana metoda z klasy C byle tylko nie zapętlić.  | 
 | 
| 1 2 « 3 »  |