🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310472

Re: Inicjowanie tablicy klas

#310472
From: Piotr Gałka
Date: Fri, 28 Jul 2023 13:16
50 lines
3026 bytes
W dniu 2023-07-28 o 14:58, Piotr Gałka pisze:
> Jak jest klasa bez domyślnego konstruktora:
> 
> class Ala
> {
>    int A;
> public:
>    Ala(int a):A(a){}
> };
> 
> to tablicę takich klas mogę zainicjować:
> 
> Ala Tab[2]={Ala(1),Ala(2)};
> 
> Ale nie wiem jak zainicjować taką tablicę w konstruktorze kolejnej 
> klasy. Chodziło by o coś w stylu:
> 
> class Tablica
> {
>    Ala T[2];
> public:
>    Tablica():T({Ala(1),Ala(2)}){}    // --- to nie przechodzi
> };
> 
> Próbowałem trochę poszukać w necie ale na hasło o inicjalizacji tablic 
> klas znajduję tylko przykłady jak moje Tab[], które działa.
> 
> Potrzebuję użyć klasy Ala w kilku różnych klasach, ale tylko w jednej 
> będzie tabela. Czyli mogę dołożyć default konstruktor z danymi jak do 
> tej jednej klasy i dopóki nie będę potrzebował drugiej klasy z tabelką 
> to 'temat załatwiony'.
> 
> Ale, choć zapewne nigdy mi to nie będzie potrzebne (nie jestem 
> programistą) to z czystej ciekawości chciałbym wiedzieć jak zainicjować 
> tabelę elementów klasy nie posiadającej default konstruktora w 
> konstruktorze klasy zawierającej tę tabelę.
> 
> Widziałem jakieś info, które może sugerować, że w C++ 11 coś w tej 
> kwestii mogło się zmienić. Mój kompilator jest starszy.

Bez zająknięcia prześliznąłem się nad tym, że to co napisałem o 
dołożeniu default konstruktora jest możliwe bo wszystkie obiekty w 
tabelce chcę tak samo inicjować (ale inaczej niż w innych klasach). 
Czyli, jeśli nie za bardzo by mi pasowało dodawanie z tego powodu 
defaultowego konstruktora (że gdzieś, kiedyś mogę zapomnieć i się 
zainicjuje zamiast zasygnalizować, że zapomniałem) to nie powinienem 
mieć nic przeciwko zrobieniu defaultowo konstruowanej pochodnej klasy 
Ala po to tylko aby ją użyć do tej tabelki.

P.G.
Technical Details
Message-ID: <ua0eu1$ie6$1$PiotrGalka@news.chmurka.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.68!not-for-mail
References: <ua0dsb$hq8$1$PiotrGalka@news.chmurka.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.68!not-for-mail
From: Piotr Gałka <piotr.galka@cutthismicromade.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Inicjowanie tablicy klas
Date: Fri, 28 Jul 2023 15:16:19 +0200
Organization: news.chmurka.net
Message-ID: <ua0eu1$ie6$1$PiotrGalka@news.chmurka.net>
References: <ua0dsb$hq8$1$PiotrGalka@news.chmurka.net>
NNTP-Posting-Host: 213.192.88.68
MIME-Version: 1.0
Injection-Date: Fri, 28 Jul 2023 13:13:37 -0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="PiotrGalka"; posting-host="213.192.88.68"; logging-data="18886"; mail-complaints-to="abuse-news.(at).chmurka.net"
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0
Cancel-Lock: sha1:iTFztK7G5h1STX9t8E3lRviE/lo= sha256:nGIFO2jBy6iuvQMvVTVF5lPMK/Yd1QQ5i8jQ6hzE4eE= sha1:HfAiZubeH6WubBsZydu49tjO89I= sha256:uDeprOKYD0J1iXTA3J6IsP6/10l0m95U1GMriAyU7sE=
In-Reply-To: <ua0dsb$hq8$1$PiotrGalka@news.chmurka.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit