Použití přetíženého operátoru, vynutit přetypování operandu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Použití přetíženého operátoru, vynutit přetypování operandu – C / C++ – Fórum – Programujte.comPoužití přetíženého operátoru, vynutit přetypování operandu – C / C++ – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Pergoly a střechy Brno

24. 3. 2021   #1
-
0
-

Ahoj,

mám třídu s přetíženými operátory. Bohužel se mi nedaří vyřešit problém s nejednoznačností operátoru v této situaci: 

MyClass op1, vysledek;
float op2;

vzsledek = op1 + op2;

Na základě chybového hlášení "operátor + je nejednoznačný" se domnívám, že se překladač nemůže rozhodnout mezi  float + float  a  MyClass + MyClass . Pokud explicitně přetypuji op1 na float, výpočet funguje. Operand op2 p5etzpovat na MyClass nejde. Nedaří se mi přijít na to, co v MyClass chybí.
Jak vynutit konverzi op2 na MyClass?

hu

Nahlásit jako SPAM
IP: 193.86.81.–
24. 3. 2021   #2
-
0
-

Ráno moudřejší večera

Řešení: přetížit operátor jako ("nečlenskou") funkci.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
KIIV
~ Moderátor
+43
God of flame
9. 4. 2021   #3
-
0
-

Jinak dobre je vyblokovat implicitni konverze (tj. u konstruktoru beroucich jen jeden parametr hodit modifikator explicit). Posledni co potrebujes jsou nesrozumitelne zpravy z templatu, kde se "zahadne" pouziva tvoje trida misto floatu, ktery si tam chtel (nebo libovolneho jineho typu, ktery umis implicitne prevest na svoji tridu).

Nahlásit jako SPAM
IP: 37.48.26.–
Program vždy dělá to co naprogramujete, ne to co chcete...
9. 4. 2021   #4
-
0
-

#3 KIIV
Třída vytvořená pro jedno konkrétní užití. Ale nikdy neříkej nikdy. Takže pro budoucí použití by to smysl mělo.

hu

Nahlásit jako SPAM
IP: 193.86.81.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

Přetypování operátorů — založil Wimby

Vynutit unikatnost — založil Jelcin

Jak vynutit obtékání — založil Návštěvník

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032021 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý