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

Implementace operator[][] – C / C++ – Fórum – Programujte.comImplementace operator[][] – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
cibule0
Návštěvník
9. 3. 2013   #1
-
0
-

Zdravím jde nějak implementovat "operator[][]" v c++. Nasel jsem jenom operator[], hodilo by se mi to pro muj projekt, implementoval jsem nějake operace s matice, cisla zadavam do jednorozmerneho pole ve tříde Matrix.

Bylo by to dobre kdyby šlo něco jako:

Matrix tmp(velikost)

tmp[0][0] = 1.0

Jednotlive souradnice bych uz prevedl na jednu souradnice prave v tom operatoru :-), Ale neco mi rika ze to asi nepujde :-)

Diky za odpovědi

Nahlásit jako SPAM
IP: 85.70.207.–
KIIV
~ Moderátor
+43
God of flame
9. 3. 2013   #2
-
+1
-
Zajímavé

budes to muset delat pres nejakou mezitridu nebo tak...  prvni rozmer ti vrati neco jako radek a druhej bude nad tim radkem..

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
cibule0
Návštěvník
9. 3. 2013   #3
-
0
-

#2 KIIV
Tak to nvm jak to mysliš :-), šlo by uvest přiklad ?

Nahlásit jako SPAM
IP: 85.70.207.–
Řešení
vitamin+8
Grafoman
9. 3. 2013   #4
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

#3 cibule



class A{
	struct B{
		double operator[](int){return 3.14;}
	};
        B b;
    public:
	B& operator[](int){return b;}

};

int main(){
	A a;

	double d = a[2][3];

}
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Martin Kozibrátka
~ Anonymní uživatel
138 příspěvků
9. 3. 2013   #5
-
0
-

Nebo to můžeš kombinovat s obyč. 2d polem

class A
{
public:
	int **v;
	int ** operator [](int i){return v;}
};

int _tmain(int argc, _TCHAR* argv[])
{
	A b;
	b[1][2];
	return 0;
}
Nahlásit jako SPAM
IP: 88.83.169.–
cibule0
Návštěvník
10. 3. 2013   #6
-
0
-

#4 vitamin
Diky moc za inspiraci funguje to :-)

Nahlásit jako SPAM
IP: 85.70.207.–
Martin Kozibrátka0
Stálý člen
10. 3. 2013   #7
-
0
-

   

template <class T, int x=1, int y=1>
class A
{
public:
	T v[x][y];
	T * operator [](int i){return v[i];}
};

int _tmain(int argc, _TCHAR* argv[])
{
	A<double,5,5> b;
	b[0][2]=25.115;
	std::cout<<b[0][2];
	std::cin.get();
	return 0;
}
Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
cibule0
Návštěvník
10. 3. 2013   #8
-
0
-

#7 Martin Kozibrátka
Ale jak jsem psal vyse ja mam ve tridě jednorozmerne pole

Nahlásit jako SPAM
IP: 85.70.207.–
Martin Kozibrátka0
Stálý člen
10. 3. 2013   #9
-
0
-

Pak používej řešení viz. výše

Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
cibule0
Návštěvník
10. 3. 2013   #10
-
0
-

#9 Martin Kozibrátka
To nvm jak bych měl použít to tvoje řešení, použil jsem to vitaminove řešeni skrz tu pomocnou třidu to funguje pěkně

Nahlásit jako SPAM
IP: 85.70.207.–
Martin Kozibrátka0
Stálý člen
10. 3. 2013   #11
-
0
-

Myslel jsem Vitaminovo řešení abys použil.

Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
cibule0
Návštěvník
10. 3. 2013   #12
-
0
-

#11 Martin Kozibrátka
Ok missunderstanding :-D

Nahlásit jako SPAM
IP: 85.70.207.–
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, 72 hostů

Podobná vlákna

Implementace Z-Buffer — založil Yimo

C# implementace ffdshow — založil Jiří

Implementace grafu — založil Ondřej Benda

Android implementace WebView — založil hejnallukas

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ý