Przekazywanie obiektu jednej klasy do metody klasy drugiej.

0

Witam . Problem mój przedstawia się tak :

Mam 4 klasy :

 class MainWindow , TablicaDanych , Dane , DodajDane 

W konstruktorze klasy MainWindow tworzę obiekt klasy TablicaDanych :

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    TablicaDanych *Tablica = new TablicaDanych;
}
 

klasa TablicaDanych posiada jedną zmienną. jest to vector<Dane> TabDane

 class TablicaDanych 
{
   public: 
       TablicaDanych();
      ~TablicaDanych(); 
     vactor<Dane> TabDane;
};

Teraz moim zapytaniem jest sposób w jaki mogę wysłać wskaźnik (utworzony w konstruktorze klasy MainWindow)

 TablicaDanych *Tablica 

do jedenj z metod klasy DodajDane gdzie w jednej z funkcji znajdowałoby się kolejno :

-utworzenie obiektu klasy Dane
-Przypisanie parametrów wartościom klasy Dane
-umieszczenie obiektu klasy Dane w vector<Dane> TabDane klasy TablicaDanych

Korzystam z biblioteki Qt i środowiska QtCreator

Pomoże ktoś ? : D

2

Lekcja na dziś: czym się różni obiekt od klasy.
Odstaw okienka i Qt i zacznij od PODSTAW języka, bo takie rzeczy omawia się na pierwszych stronach każdego kursu.

0

Ok w takim razie teraz mam tak

klasa DodajDane :

 

include <Dane.h>

class Dane;

namespace Ui {
class DodajDane;
}

class DodajDane : public QMainWindow
{
    Q_OBJECT

public:
    explicit DodajDane(QWidget *parent = 0);
    ~DodajDane();

    static QVector<Dane*> Dane_Array;
    NadajParametry();
 };
 

użyłem vectora ze static.

W funkcji NadajParametry() tworzę obiekt klasy Dane, nadaję mu parametry i próbuje go zapisać do zmiennej statycznej vector w ten sposób :

 
DodajDane::NadajParametry()
{
       Dane *Dan= new Dan;
       Dan->x = 1
      /*
           ....
     */
     Dane_Array.push_back(Dan);
}

kiedy chcę dodać obiekt Dan do vectora Dane_Array kompilator wyrzuca mi błąd :

DodajDane.obj:-1: błąd unresolved external symbol "public: static class QVector<class Dane *> DodajDane::Dane_Array" (?Dane_Array@DodajDane@@2V?$QVector@PAVDane@@@@A)

Brak pliku : DodajDane.obj

Nie wiem co mógłbym w tym momencie zrobić źle...

1
  1. Dane *Dan= new Dan; - doprawdy tak masz i kompilator się nie czepia?
  2. QVector<Profil*> Dane_Array; - a przekazać próbujesz obiekt typu Dane ?
1

Z tego co ja widze to nigdzie tego vectora Dane_Array nawet nie utworzyłes. Bo skoro jest static to trzeba go gdzieś stworzyć...

1 użytkowników online, w tym zalogowanych: 0, gości: 1