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

Referencia – C / C++ – Fórum – Programujte.comReferencia – C / C++ – Fórum – Programujte.com

 

robo
~ Anonymní uživatel
82 příspěvků
13. 8. 2014   #1
-
0
-

Mám nasledujúci kód

namespace Robo{
	class Comparing{
	public:
		enum cmp {normal, reverse};
		cmp mode;
		Comparing(cmp m = normal) : mode(m) {}
		bool operator==(const Comparing & c) {return mode == c.mode;}
	};

	template <typename T>
	void swap(T & a, T & b);

	template <typename T>
	void bubbleSort(T field, int n, Comparing mode = Comparing::normal);

	template <typename T>
	void shakerSort(T field, int n, Comparing mode = Comparing::normal);
	
	template <typename T>
	void selectionSort(T field, int n, Comparing mode = Comparing::normal);
}

Problém nastane, keď chcem do funkcie predať referenciu triedy a nie kópiu.
 

void bubbleSort(T field, int n, Comparing & mode = Comparing::normal);

Vypíše mi nasledovnú chybu:
error C2440: 'default argument' : cannot convert from 'Robo::Comparing::cmp' to 'Robo::Comparing &'  

Nahlásit jako SPAM
IP: 178.253.170.–
robo
~ Anonymní uživatel
82 příspěvků
13. 8. 2014   #2
-
0
-

Problém musí byť dakde v maine jak tak skúmam

 

Robo::Comparing reverse(Robo::Comparing::reverse);
int pole[LENGTH];
Robo::bubbleSort(pole, LENGTH);
Robo::selectionSort(pole, LENGTH, reverse);
Nahlásit jako SPAM
IP: 178.253.170.–
Matěj Andrle+1
Grafoman
13. 8. 2014   #3
-
0
-

#2 robo 

Comparing & mode = &Comparing::normal

Nebo pointer - teď jsem zmagořen - */& - jedno z toho... :D

Nahlásit jako SPAM
IP: 78.136.161.–
KIIV
~ Moderátor
+43
God of flame
13. 8. 2014   #4
-
0
-

popravde, vubec nechapu proc davas objektu Comparing hodnotu z enumu a jeste k tomu to ma byt reference

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
vitamin+8
Grafoman
13. 8. 2014   #5
-
0
-

Premennu typu Robo::Comparing::cmp nemozes priradit do referencie Robo::Comparing, su to uplne odlisne typy. A aj keby to bol ten isty typ tak by to neslo lebo Comparing::normal je rvlue...

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
robo
~ Anonymní uživatel
82 příspěvků
13. 8. 2014   #6
-
0
-

#4 KIIV
Tak ten objekt je tam nato, aby niesol informáciu či mám pole usporiadať zostupne alebo vzostupne.
Takto je to riešené aj v jednej knihe
 


#5 vitamin
Tak ale keď tam nedám tú referenciu, tak všetko funguje ako má. Aj v móde normal aj reversePřipojen obrázek.

Keď tam nedám referenciu, všetko mi funguje ako má.

Nahlásit jako SPAM
IP: 178.253.170.–
KIIV
~ Moderátor
+43
God of flame
13. 8. 2014   #7
-
0
-

#6 robo
vypada to dost prehnane, kdyz vsechny sablonovy funkce pro razeni, hledani a podobne pouzivaji pretizeny operator< ..

pripadne jim jde predat vlastni komparator (funkcni objekt nebo primo funkci)

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 10 hostů

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ý