Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

c++ qt deklaracja obiektu w klasie nadrzednej klasy podrzednej zasięg widoczność

Ostatnio zmodyfikowano 2016-04-28 18:20
Autor Wiadomość
michal11
» 2016-04-28 02:04:59
Podejrzewam, że QDebug() jest singletonem ew. zwraca jakąś zmienną globalną (podobnie do cin/cout).
P-147742
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
C/C++
#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 // A_H

b.h
C/C++
#ifndef B_H
#define B_H
#include "a.h"

class B
    : public A
{
public:
    B();
    test();
    OK();
};

#endif // B_H

c.h
C/C++
#ifndef C_H
#define C_H
#include "a.h"

class C
    : public A
{
public:
    C();
    test();
   
};

#endif // C_H

a.cpp
C/C++
#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
C/C++
#include "a.h"
#include "b.h"
#include "c.h"

B::B()
    : A()
{
   
}

B::test()
{
    qDebug() << "metoda klasy B Potomek A";
    //cobject->testB();
}

B::OK()
{
    cobject->test();
    qDebug() << "OK";
   
}

c.cpp
C/C++
#include "c.h"
#include "b.h"
#include "a.h"

C::C()
    : A()
{
   
}

C::test()
{
    qDebug() << "metoda klasy C Potomek A";
   
    bobject->test();
}

main.cpp
C/C++
#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ć.
P-147760
1 2 « 3 »
Poprzednia strona Strona 3 z 3