🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Różne nazwy konstruktora?

#310340
From: Przemek Biernat
Date: Wed, 29 Mar 2023 17:27
61 lines
3471 bytes
On Wednesday, December 23, 2020 at 3:22:35 AM UTC+1, M.M. wrote:
> On Monday, December 7, 2020 at 9:10:09 PM UTC+1, Wojciech Muła wrote: 
> > On Monday, December 7, 2020 at 8:05:03 PM UTC+1, Borneq wrote: 
> > > W starym Pascalu choćby konstruktor może mieć różne nazwy. W C++ może 
> > > być wiele konstruktorów różniących się parametrami. 
> > > Jednak czasem potrzeba by były różne nazwy. 
> > > Taki przykład: 
> > > Liczba zespolona, ma pola Re i Im. Inicjuje się tymi dwiema liczbami, a 
> > > chciałbym jeszcze inicjować przez promień i kąt. 
> > > Co warto zrobić? 
> > 1. Statyczna metoda 
> > 
> > class Complex { 
> > public: 
> > Complex(double re, double im); 
> > static Complex from_polar(duoble mod, double arg); 
> > } 
> > 
> > 2. Specjalizacja z własnym typem 
> > 
> > struct UsePolarCoordsPlease {}; 
> > 
> > UsePolarCoordsPlease from_polar; 
> > 
> > class Complex { 
> > public: 
> > Complex(double re, double im); 
> > Complex(double mod, double arg, UsePolarCoordsPlease); 
> > }; 
> > 
> > Complex a{1, 2}; 
> > Complex b{5, 12, from_polar}; 
> > 
> > 3. Wprowadzić osobny typ do przechowywania kątów, który nie jest domyślnie 
> > konwertowalny na liczbę i wtedy robisz specjalizacje dla niego. Ale to już 
> > zdecydowanie najwięcej zabawy. 
> > 
> > w.
> Trochę inne zagadnienie związane z konstruktorami, które zawsze mnie denerwowało w C++. 
> Poniższy kod w C++ się nie skompiluje: 
> 
> class A { 
> int a; 
> public: 
> A(const int a):a(a) { 
> } 
> }; 
> class B : public A { 
> }; 
> int main() 
> { 
> B b(3); 
> return 0; 
> } 
> 
> Natomiast odpowiedni kod w PHP działa bez zarzutu. Co by było złego, gdyby w C++ 
> konstruktory 'były dziedziczone' ? 
> 
> Pozdrawiam

Nie rozumiem dlaczego ciebie to denerwuje. Normalne zachowanie w C++.
Technical Details
Message-ID: <4a9c0cf2-14b2-4e89-b36e-f6263eb92504n@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!3.us.feeder.erje.net!news.misty.com!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
References: <5fce7cbf$0$554$65785112@news.neostrada.pl> <48755639-7648-40b4-a759-609bafdc9f05n@googlegroups.com> <efaebb19-3d42-4280-9763-b6e4591fbef9n@googlegroups.com>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:622a:1491:b0:3db:a6c5:cdb7 with SMTP id t17-20020a05622a149100b003dba6c5cdb7mr7077092qtx.5.1680110875739;        Wed, 29 Mar 2023 10:27:55 -0700 (PDT)
X-Received: by 2002:a05:6871:d96:b0:17e:1aaf:eb88 with SMTP id vi22-20020a0568710d9600b0017e1aafeb88mr6374968oab.3.1680110873982; Wed, 29 Mar 2023 10:27:53 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!3.us.feeder.erje.net!news.misty.com!1.us.feeder.erje.net!feeder.erje.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Wed, 29 Mar 2023 10:27:53 -0700 (PDT)
In-Reply-To: <efaebb19-3d42-4280-9763-b6e4591fbef9n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=193.238.201.2; posting-account=JqeG5AoAAAAiFyQBrqF1gF5A1eLVPTrJ
NNTP-Posting-Host: 193.238.201.2
References: <5fce7cbf$0$554$65785112@news.neostrada.pl> <48755639-7648-40b4-a759-609bafdc9f05n@googlegroups.com> <efaebb19-3d42-4280-9763-b6e4591fbef9n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4a9c0cf2-14b2-4e89-b36e-f6263eb92504n@googlegroups.com>
Subject: Re: Różne nazwy konstruktora?
From: Przemek Biernat <biernat.przemyslaw@gmail.com>
Injection-Date: Wed, 29 Mar 2023 17:27:55 +0000
X-Received-Bytes: 3503
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit