Article View: pl.comp.lang.c
Article #310336Re: Różne nazwy konstruktora?
From: Wojciech Muła
Date: Mon, 07 Dec 2020 20:10
Date: Mon, 07 Dec 2020 20:10
37 lines
2342 bytes
2342 bytes
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.
Technical Details
Message-ID:
<48755639-7648-40b4-a759-609bafdc9f05n@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<5fce7cbf$0$554$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:b181:: with SMTP id v1mr23053493qvd.36.1607371808432; Mon, 07 Dec 2020 12:10:08 -0800 (PST) X-Received: by 2002:a05:620a:790:: with SMTP id 16mr26343924qka.169.1607371808234; Mon, 07 Dec 2020 12:10:08 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin3!goblin.stu.neva.ru!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Mon, 7 Dec 2020 12:10:08 -0800 (PST) In-Reply-To: <5fce7cbf$0$554$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=178.43.54.87; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn NNTP-Posting-Host: 178.43.54.87 References: <5fce7cbf$0$554$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <48755639-7648-40b4-a759-609bafdc9f05n@googlegroups.com> Subject: Re: Różne nazwy konstruktora? From: Wojciech Muła <wojciech_mula@poczta.onet.pl> Injection-Date: Mon, 07 Dec 2020 20:10:08 +0000 Lines: 41 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit