Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko preklapanja funkcija (polymorphysm)

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko preklapanja funkcija (polymorphysm)

[ Pregleda: 1282 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Acko95
Acko Spasic
Novi Sad, Srbija

Član broj: 290828
Poruke: 18
*.dynamic.isp.telekom.rs.



+7 Profil

icon Pomoc oko preklapanja funkcija (polymorphysm)22.01.2012. u 17:45 - pre 149 meseci
[code]
//Preklapanje funkcija clanica klasa

#include <iostream>

using namespace std;

typedef unsigned short int ushort;
enum BOOL { FALSE, TRUE };

class Rectangle
{
public:
// konstruktori
Rectangle(ushort width, ushort height);
~Rectangle() {}

// preklopljena klasna funkcija DrawShape
void DrawShape() const;
void DrawShape(ushort aWidth, ushort aHeight) const;

private:
ushort itsWidth;
ushort itsHeight;
};

// implementacija konstruktora
Rectangle::Rectangle(ushort width, ushort height)
{
itsWidth = width;
itsHeight = height;
}

// preklopljena DrawShape ne prihvata vrednosti
// crta bazirajuci se na tekucim vrednostima clanova klase
void Rectangle::DrawShape()
{
DrawShape( itsWidth, itsHeight );
}

// preklopljena DrawShape prihvata dve vrednosti
// crta oblik bazirajuci se na parametrima
void Rectangle::DrawShape(ushort width, ushort height)
{
for ( ushort i = 0, i < height << i++ )
{
for ( ushort j = 0, j < width << j++ )
{
cout << "*";
}
cout << endl;
}
}

// Demonstrira program koji demonstrira preklopljene funkcije
int main()
{
// inicijalizuje pravougaonik na 30,5
Rectangle theRect(30,5);
cout << "DrawShape(); \n";
theRect.DrawShape();
cout << "\nDrawShape(40,2); \n";
theRect.DrawShape(40,2);
cin.get();
return 0;
}

Radim u Microsoftovom Visual c++ 2010, i izbacuje mi gresku kod inicijalizacije DrawRect() funkcija, kaze: No instace of overload function "Rectange::DrawShape" matches the specified type, a dole pise:
' void Rectangle::DrawFunction(void) ' : overloaded member function not found in 'Rectangle' see declaration of 'Rectangle'. I isto to za drugu funkciju DrawShape, nzm u cemu je problem ako bi neko mogao da mi razjasni bio bih mu zahvalan :D
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
*.dynamic.isp.telekom.rs.

ICQ: 208550327


+14 Profil

icon Re: Pomoc oko preklapanja funkcija (polymorphysm)22.01.2012. u 19:31 - pre 149 meseci
Code:


// preklopljena DrawShape ne prihvata vrednosti
// crta bazirajuci se na tekucim vrednostima clanova klase
void Rectangle::DrawShape()
{
DrawShape( itsWidth, itsHeight );
}

// preklopljena DrawShape prihvata dve vrednosti
// crta oblik bazirajuci se na parametrima
void Rectangle::DrawShape(ushort width, ushort height)
{
for ( ushort i = 0, i < height << i++ )
{
for ( ushort j = 0, j < width << j++ )
{
cout << "*";
}
cout << endl;
}
}



Fali ti kljucna rec const u implementaciji ove dve funkcije clanice. U klasi si deklarisao funkcije kao const a u implementaciji si zaboravio da stavis.
Znaci, kod treba da izgleda ovako:

Code:


// preklopljena DrawShape ne prihvata vrednosti
// crta bazirajuci se na tekucim vrednostima clanova klase
void Rectangle::DrawShape() const
{
DrawShape( itsWidth, itsHeight );
}

// preklopljena DrawShape prihvata dve vrednosti
// crta oblik bazirajuci se na parametrima
void Rectangle::DrawShape(ushort width, ushort height) const
{
for ( ushort i = 0, i < height << i++ )
{
for ( ushort j = 0, j < width << j++ )
{
cout << "*";
}
cout << endl;
}
}


EOF
 
Odgovor na temu

Acko95
Acko Spasic
Novi Sad, Srbija

Član broj: 290828
Poruke: 18
*.dynamic.isp.telekom.rs.



+7 Profil

icon Re: Pomoc oko preklapanja funkcija (polymorphysm)22.01.2012. u 19:39 - pre 149 meseci
@glorius hvala brate, nikad ne bi primetio, morao bi ispocetka da kucam :D
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Pomoc oko preklapanja funkcija (polymorphysm)

[ Pregleda: 1282 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.