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

Operator + se 2 argumenty – C / C++ – Fórum – Programujte.comOperator + se 2 argumenty – C / C++ – Fórum – Programujte.com

 

Dejv
~ Anonymní uživatel
27 příspěvků
7. 4. 2013   #1
-
0
-

Potřebuju pomoct s přetížením operátoru + se 2 argumety

mám toto:

class CMatrix
{
    public:
    double ** pole;
    friend CMatrix operator+ ( const CMatrix & a, const CMatrix & b );
};
CMatrix::CMatrix(int x, int y) // konstruktor
{
    delka_X=x;
    delka_Y=y;
    pole = new double*[delka_Y];
    for (int a=0;a<delka_Y;a++)
    {
        pole[a] = new double[delka_X];
        for (int b=0;b<delka_X;b++) {pole[a][b] = 0;}
    }
}
CMatrix::CMatrix(const CMatrix & mat) // kopirujici konstruktor
{
    delka_X = mat.delka_X;
    delka_Y = mat.delka_Y;
    pole = new double*[delka_Y];
    for (int x=0;x<delka_Y;x++)
    {
        pole[x] = new double[delka_X];
        for(int y=0;y<delka_X;y++) {pole[x][y] = mat.pole[x][y];}
    }
}
CMatrix::~CMatrix(void)// destruktor
{
    for (int x=0;x<delka_Y;x++) {delete [] pole[x];}
    delete [] pole;
}

a potřebuju operator + overload se 2 argumenty aby v mainu šlo toto:

CMatrix d(1,1);
d = a + b; // matice D bude soucet matice A + matice B

někde jsem četl že se to dělá pomocí *this... ale nevím jak.

Nahlásit jako SPAM
IP: 94.113.78.–
vitamin+8
Grafoman
7. 4. 2013   #2
-
0
-

operator mozes vytvorit ako frienda alebo ako metodu:

struct Matrix{
	
	Matrix operator+(const Matrix& m)const{
		Matrix temp;
		//temp = (*this + m)
		return temp;
	}
	//alebo:
	friend Matrix operator+(const Matrix& a, const Matrix& b){
		Matrix temp;
		//temp = (a + b)
		return temp;
	}
};

Doporucujem ti spravyt aj move constructor (ak mas c++11) alebo mieso operatora+ pretazit operator+= 

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. "
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, 122 hostů

Podobná vlákna

Argumenty ve funkci. — založil survik1

Tkinter - funkce s argumenty — založil Polarski

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ý