Ongelma on tämä:
TOIMII: double foo = omatyyppi 3.1415;
TOIMII: double foo = 3.1415 static_cast(omatyyppi);
EI TOIMI: double foo = 3.1415 omatyyppi;
koe.c:18: error: ambiguous overload for 'operator '
Eli olen ylimääritellyt -operaation omatyypissä näin:
omatyyppi operator (double f) {...}
Ja lisäksi tyyppimunnosta doubleksi varten:
operator double() {...}
Onko mahdollista saada yhteenlasku toimimaan kuvatun kaltaisesti myös toisinpäin ilman erillistä tyyppimuunnosta? Ja miksei se nyt toimi vaikka tyyppimuunnosoperaattori on määritelty? g bugi?
C++ operator overloading (g++)
5
1437
Vastaukset
- akin.2
öh.. toi on kyllä jo jonkinnäköistä perversiota..
jos haluat että tuo operator toimii vikassa tapauksessa, sun pitäis määritellä 3.1415:lle (miksi lie se muutetaankaan käännön/ajon yhteydessä.. stakissa olevaksi float:ksi doubleksi.. mene ja tiedä..) operaattori .. tätä et pysty tekee.. vaihtoehto olis tehdä omatyyppiwrapperi luokka joka wrappaa tollasen 3.1415 litanian ja tarjoaa rajapinnan tollaselle laskennalle..
eg:
class Numero
{
public:
Numero( double aGiven ):iNumero(aGiven);
double operator ( omatyyppi aBlaa ) { return aBlaa->getNumber() iNumero; }
private:
double iNumero;
};
// en nyt muista miten operaattorin overloadaus meni.. en ole käyttänyt vuosiin, myös varmaan luokan tunkeminen templateksi olis pRo temppu..
tuolla saa wrapattua tylsästi:
double foo = Numero( 3.1415 ) omatyyppi;
/*
toki tapoja tehdä tämä on monia.. tämä vain yksi nopeasti hutastu idea.. Sorsa on myös samaa tasoa, kiljoona virhettä..
*/- qwerty12345
Luokan ulkopuolelle voi kyllä.
X operator (double const a, X const& b) {
X tulos;
return tulos;
} - Anonyymi
MENE HOITOON!
- Anonyymi
Täytyy määritellä myös operaattori double-tyypiltä omatyypille. Esimerkiksi:
omatyyppi operator +(double f) { ... }
Tämä mahdollistaa yhteenlaskun, jossa double-tyyppinen arvo lisätään omatyypin arvoon.
Virheilmoitus "ambiguous overload for 'operator '" tarkoittaa, että kääntäjä ei pysty päättämään, kumpaa operaattorifunktiota se tulisi käyttää, koska operaattoria on ylikuormitettu useammalla kuin yhdellä tavalla. Tässä tapauksessa sinun täytyy määritellä selkeämmin, miten haluat kääntäjän valitsevan operaattorin. Lisäksi varmista, että olet määritellyt kaikki tarvittavat operaattorit ja tyyppimuunnokset oikein. - Anonyymi
Vaikuttaa että operaation operandien ja operaattorien käsitteet ovat nyt sekasin.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Me työeläkeläiset äänestämme SDP:tä
SDP on luonut koko työeläkejärjestelmän, jonka hedelmistä saamme nyt nauttia. Kansaneläkelaitos on Maalaisliiton tekele,1464870Eikö tunnukin kamalalta, kun en
anna periksi vaikka parhaasi olet tehnyt antaaksesi täystyrmäyksen? Ja kyllähän minä monta iskua olen saanut ja maannut813556SDP on selvästi paras valinta äänestyskopissa
Puolueella on arvomaailma kohdallaan, sillä on hyvä CV itsenäisen Suomen historiassa vastuunkantajana ja hyvinvointivalt302545SDP:n selitykset ontuu pahasti - "On käsitelty heti, mutta kukaan ei tiedä"
Kokoomuslaiset pistää taas demareita nippuun. Tuppuraisen mukaan mukaan SDP:n useat ahdistelutapaukset on käsitelty het402223Kenen juontajan pitäisi voittaa tänään Kultainen Venla? Ehdolla Pimiä, Holma ja Vaaherkumpu
Kultainen Venla gaalassa jaetaan tänään tv-alan palkintoja. Yksi suosituimmista kategorioista on Juontaja. Vappu Pimiä662062Antti Lindtman: "Ainahan kaikenlaisia huhuja liikkuu"
Näin hän siis vastaa SDP:n häirintäkohuun, väistelee vastuutaan Juttuhan on niin, että Lindtman ja Tuppurainen on tasan632013Oletko nainen turhautunut, kun en tule juttelemaan siellä?
Haluaisin tottakai tulla. Älä käsitä väärin. Ehkä ensi kerralla?231981Mitä saa sanoa?
Palstalla tänään sanottua: ” Kaikki riippuu siitä, miten asian esittää,” Onko siis niin, että saa muita pomottaa ja851973Onko olemassa miehiä, jotka haluavat yhteydenpitoa?
Silloin tällöin viestiä, puntarointeja arkielämästä, ikäänkuin pientä viihdettä ilman sen kummallisempaa. Tällaista miet191458Mitä Trump itse pitäisi siitä, jos häntä solvattaisiin
Kuten hän solvasi muita mm. Macronia? Kyllä ei huumori enää kukkisi. White house on nykyään pelkkä vitsi vain, ei mitään991262