cont int i dynamiczne tablice

0

Witam nie wiem czy to problem newbie ale raczej podstawy...

Mam Trzy klasy

A,B,C

w klasie A mam

const int size;

i w konstuktorze nadaję wartość

A::A() : size(10)
{
}

następnie w klasie B mam tablicę wskaźników na obiekty klasy C

C *tablica[]

i chciałbym aby tablica ta miała rozmiar zmiennej size z klasy B...nie wiem jak to zrobić...

od razu dzięki za pomoc :)

0

Tak jest w klasie A, coś to zmienia ?

Chciałbym po prostu zrobić mniej więcej tak

C* tablica[size];

tylko właśnie że definicje size i tablicy mam w osobnych plikach .h

0

Daje przykładowy kod żeby nie było niejasności.

Chcę aby tablica_A miala rozmiar size_A, a tablica_B miała rozmiar size_B (o ile się da), całość chce zrobić w konstruktorze klasy B.

class A
{
        public :
        const int size_A;
        A() : size_A(10) {}
};

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

class B
{
        const int size_B;
        public :
        C *tablica_A[];
        C *tablica_B[];

        B() : size_B(15)
        {
              // ???
        }
};
0

size_B masz w klasie B, więc żaden problem. Do size_A nie dostaniesz się bez konkretnego obiektu. Jeżeli size_A oraz size_B będą w każdej klasie takie same, to niech będą statycznymi składnikami - wtedy dostaniesz się do size_A bez problemu.

0

ok rozumiem, ale jeśli mam dostęp do zmiennej size to jak zapisać to dla obiektu ?

dla int wygląda do tak :


const int size;
int *wsk;

A::A() : size(10)
{
  int = new int[size];
}

a dla obiektu to nie wiem;/ gubie się w szczegulności że nie moge użyć domyślnego konstuktora

0

w poprzednim poście chodziło mi o wsk = new int[size];

Ale ok doszedłem do takiego punktu :

class A
{
        public :
        static const int size = 10;
        A() {}
};

class C
{
        int X,Y;
        public :
        C() {}
        C(int x, int y) {X = x; Y = y;}
};

class B
{
        const int rozmiar;
        public :
        C *tablica;

        B() :  rozmiar(A::size)
        {
                tablica = new C[rozmiar];

        }
        ~B()
        {
                delete []tablica;
        }
};

wszystko się kompiluje ale niestety mogę użyć w swoim programie jedynie konstruktora z parametrami ;/ a tutaj nie wiem jak to zapisać;/
chodzi mi mniej więcej o takie coś tablica = new C(1,2)[rozmiar];

0

Kombinujesz jak qń pod górkę. Jeżeli klasa B powinna używać rozmiaru z klasy A, to czy aby nie powinna dziedziczyć z klasy A? Wtedy będzie używać zmiennej size (pod warunkiem że nie jest prywatna) jak swojej. No i zmienna ta nie musi być wtenczas statyczna.

0

Dziedziczenie mijało by się z logika...poza tym chcę tylko wiedzieć jak użyć stałej zmiennej przy tworzeniu tablicy obiektów bez domyślnego konstruktora...resztę sam ogarnę :)

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