Käytössä DevC++ ja pitäisi olla suoraan(lyhennetty pätkä) Jesse Libertyn kirjasta, mutta getArea muodostin antaa väärät arvot. Kertokaas gurut alottelijalle syy.
#include <iostream.h> class Rectangle { public: Rectangle (int top, int left, int bottom, int right); ~Rectangle () {} int GetArea() const; private: int itsTop; int itsLeft; int itsBottom; int itsRight; }; Rectangle::Rectangle(int top, int left, int bottom, int right) { int itsTop = top; int itsLeft = left; int itsBottom = bottom; int itsRight = right; cout << itsLeft <<"\n"; // Tässä vaiheessa itsLeft ok. } int Rectangle::GetArea() const { int Width = itsRight - itsLeft; int Height = itsTop - itsBottom; cout << itsLeft <<"\n"; // Tässä vaiheessa itsLeft pielessä. return (Width*Height); } int main() { //char merkki; Rectangle MyRectangle(100, 20, 50, 80); int Area = MyRectangle.GetArea(); cout << "Area: " << Area << "\n"; //cin >> merkki; return 0; }
lainaus:
//char merkki;
Rectangle MyRectangle(100, 20, 50, 80);
int Area = MyRectangle.GetArea();cout << "Area: " << Area << "\n";
//cin >> merkki;
Miksi charin ja cinnin edessä on 2 kauttaviivaa? Ne voisi ottaa pois sillä se voi muuttaa ne (kait) kommentoinniksi.
[/lainaus]
Miksi charin ja cinnin edessä on 2 kauttaviivaa? Ne voisi ottaa pois sillä se voi muuttaa ne (kait) kommentoinniksi.
[/lainaus]
Kommenteiksi ne onkin tarkoitettu. Omissa kokeiluissa taas käytössä. Ei pitäisi vaikuttaa itse asiaan. Mutta pääpointti on miksi GetArea funktio antaa vääriä arvoja. Pitäiskö tuossa olla vielä kuitenkin SetArea tms.
Ei muuten olekaan aivan suoraan J.L:n kirjasta vaan omaa juttua sovellettuna em. kirjasta.
Kannattaa käyttää lainaus juttua..hihhih :D.
Sinä luot nyt uudet muuttujat muodostin funktiossa joten muutat niiden arvoja etkä oikeita jäsenmuuttujia. Muodostinfunktion pitäisi mennä näin (elikkä int:it pois):
Rectangle::Rectangle(int top, int left, int bottom, int right)
{
itsTop = top;
itsLeft = left;
itsBottom = bottom;
itsRight = right;
cout << itsLeft <<"\n"; // Tässä vaiheessa itsLeft ok.
}
Nyt ne viittavaat jäsenmuuttujiin.
Kiitos.
Tuli mieleen, että ei taida maailmasta löytyä montaa lukihäiriöistä C++ koodaajaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.