Nastavení operátoru != – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nastavení operátoru != – C / C++ – Fórum – Programujte.comNastavení operátoru != – C / C++ – Fórum – Programujte.com

 

TomBar0
Newbie
8. 4. 2010   #1
-
0
-

Dobrý den, začínám s objektovým programováním a chtěl jsem si zkusit nastavit operátor !=
mám následující kód:

#include<iostream>

#include<string>
using namespace std;

class CNerovnaSe{
int x;
string y;
public:
CNerovnaSe(){x=0;y="\0";};
CNerovnaSe(int,string);
CNerovnaSe operator!=(CNerovnaSe);
}

CNerovnaSe::CNerovnaSe(int a, string b){
x=a;
y=b;
}

CNerovnaSe CNerovnaSe::operator!=(CNerovnaSe param){
if ((x==param.x)&&(y==param.y)) return 0;
else return 1;
}

int main(){
CNerovnaSe ahoj(1,"ahoj");
CNerovnaSe nazdar(2,"nazdar");
if (ahoj!=nazdar) cout<<1;
else cout<<0;}

ale hází mi to chybu na 14. řádku "new types may not be defined in a return type" (nové typy nemůžou být definované v návratném typu - aspoň tak nějak to chápu). Nechápu co si pod tím mám představit.
Děkuji.

Nahlásit jako SPAM
IP: 212.24.137.–
Bald3rr0
Super člen
8. 4. 2010   #2
-
0
-

To TomBar : ty vracíš 0 nebo 1, ale fci máš deklarovanou jako s návratovým typem CNerovnaSe. Bude to chtít buď int nebo bool ;)

Nahlásit jako SPAM
IP: 82.100.0.–
TomBar0
Newbie
8. 4. 2010   #3
-
0
-

už jsem tam bool dal, ale na 14. řádku to furt hlásí tu samou chybu

Nahlásit jako SPAM
IP: 212.24.137.–
TomBar0
Newbie
8. 4. 2010   #4
-
0
-

respektive to teď vypadá takhle

#include<iostream>

#include<string>
using namespace std;

class CNerovnaSe{
int x;
string y;
public:
CNerovnaSe(){x=0;y="\0";};
CNerovnaSe(int,string);
CNerovnaSe operator!=(CNerovnaSe);
}

CNerovnaSe::CNerovnaSe(int a, string b){
x=a;
y=b;
}

bool CNerovnaSe::operator!=(CNerovnaSe param){
bool nerovno;
if ((x==param.x)&&(y==param.y)) nerovno=0;
else nerovno=1;
return nerovno;
}

int main(){
CNerovnaSe ahoj(1,"ahoj");
CNerovnaSe nazdar(2,"nazdar");
if (ahoj!=nazdar) cout<<1;
else cout<<0;}

Nahlásit jako SPAM
IP: 212.24.137.–
Bald3rr0
Super člen
8. 4. 2010   #5
-
0
-

To TomBar : Na 12. řádku ti za } chybí ; ... + Tam máš další chyby, proměnná param nemá žádné public atributy.

Nahlásit jako SPAM
IP: 82.100.0.–
TomBar0
Newbie
8. 4. 2010   #6
-
0
-

Aha. Děkuji a omlouvám se za opravdu špatnou otázku :).

Nahlásit jako SPAM
IP: 212.24.137.–
KIIV
~ Moderátor
+43
God of flame
8. 4. 2010   #7
-
0
-

hlavne na radku 11 nechal puvodni spatnou navratovou hodnotu

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
TomBar0
Newbie
8. 4. 2010   #8
-
0
-

jj, díky, už jsem si to všechno opravil a funguje to

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

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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, 34 hostů

Podobná vlákna

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

Přetížení operátoru ^ — založil TauWich

Moderátoři diskuze

 

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