Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno c++ Problém s třídou

Dobrý den, učím se c++ a mám problém s třídou a netuším jak ho vyřešit, dle cvičení z Naučte se programovat za 21 dní sem napsal program na výpočet obsahu z X, Y soustavy. Používal jsem při tom soukromé proměnné a veřejné přístupové funkce. (Chybová hláška dole)
Mohli byste mi prosím říct, kde jsem udělal chybu, jsem začátečník.
Jestli někdo tuhle blbost přečte a pomůže mi, budu šíleně moc rád
Děkuji...

Tady je muj hlavickovy soubor:

#include <iostream>   //Zacatek Obdelnik.hpp


class Bod
{
      public:
             void NastavX(int X) {HodnotaX = X;}
             void NastavY(int Y) {HodnotaY = Y;}
             int ZiskejX() const {return HodnotaX;}
             int ZiskejY() const {return HodnotaY;}
      
     private:
             int HodnotaX;
             int HodnotaY;
}


class Obdelnik
{
      public:
             Obdelnik( int Horni, int Pravy, int Dolni, int Levy);  //Konstruktor
             ~Obdelnik () {};
              
             int ZiskejHorni() const {return HodnotaHorni;}
             int ZiskejPravy() const {return HodnotaPravy;}
             int ZiskejDolni() const {return HodnotaDolni;}
             int ZiskejLevy() const {return HodnotaLevy;}
             
             int ZiskejHorniLevy() { return HodnotaHorniLevy;}
             int ZiskejDolniLevy() { return HodnotaDolniLevy;}
             int ZiskejHorniPravy() { return HodnotaHorniPravy;}
             int ZiskejDolniPravy() { return HodnotaDolniPravy;}
             
             void NastavHorniLevy(Bod Umisteni) {HodnotaHorniLevy = Umisteni;}
             void NastavDolniLevy(Bod Umisteni) {HodnotaDolniLevy = Umisteni;}
             void NastavHorniPravy(Bod Umisteni) {HodnotaHorniPravy = Umisteni;} 
             void NastavDolniPravy(Bod Umisteni) {HodnotaDolniPravy = Umisteni;}
             
             
             void NastavHorni(int Horni) {HodnotaHorni = Horni;}
             void NastavLevy(int Levy) {HodnotaLevy = Levy;}
             void NastavDolni(int Dolni) {HodnotaDolni = Dolni;}
             void NastavPravy(int Pravy) {HodnotaPravy = Pravy;}
             
             int ZiskejPlochu() const;
             
     private:
             Bod HodnotaHorniLevy;
             Bod HodnotaHorniPravy;
             Bod HodnotaDolniLevy;
             Bod HodnotaDolniPravy;
             
             int HodnotaHorni;
             int HodnotaLevy; 
             int HodnotaDolni;
             int HodnotaPravy;
             
}; //Konec Obdelnik.hpp

.cpp je zde:

#include "Obdelnik.hpp"

Obdelnik::Obdelnik(int Horni, int Pravy, int Dolni, int Levy)
{
                       HodnotaHorni = Horni;
                       HodnotaLevy = Levy;
                       HodnotaDolni = Dolni;
                       HodnotaPravy = Pravy;
                       
                       HorniLevy.NastavX(Levy);
                       HorniLevy.NastavY(Horni);
                       
                       HorniPravy.NastavX(Pravy);
                       HorniPravy.NastavY(Horni);
                       
                       DolniLevy.NastavX(Levy);
                       DolniLevy.NastavY(Dolni);
                       
                       DolniPravy.NastavX(Pravy);
                       DolniPravy.NastavY(Dolni);
}

int Obdelnik::ZiskejPlochu() const  //Spocita obsah tak, ze odecte souradnice rohovych bodu, a pak je vynasobi
{
    int Sirka = HodnotaPravy - HodnotaLevy;
    int Vyska = HodnotaDolni - HodnotaHorni;
    
    return (Vyska*Sirka);
}

int main()
{
    using namespace std;
    
    Obdelnik MujObdelnik ( 100, 20, 50, 80);
    int plocha = MujObdelnik.ZiskejPlochu();
    
    cout << "Plocha je " << plocha << endl;
    cout << "Souradnice X, leveho horniho rohu je:";
    cout << MujObdelnik.ZiskejHorniPravy().ZiskejX() << endl;
    
    cin.get();
    return 0;
}

Chybová hláška je tady:

In file included from C:\Users\David \Desktop\C++\Obdelnik.cpp:1:
C:\Users\David \Desktop\C++\/Obdelnik.hpp: In member function `int Obdelnik::ZiskejHorniLevy()':
C:\Users\David \Desktop\C++\/Obdelnik.hpp:29: error: cannot convert `Bod' to `int' in return

C:\Users\David \Desktop\C++\/Obdelnik.hpp: In member function `int Obdelnik::ZiskejDolniLevy()':

C:\Users\David \Desktop\C++\/Obdelnik.hpp:30: error: cannot convert `Bod' to `int' in return

C:\Users\David \Desktop\C++\/Obdelnik.hpp: In member function `int Obdelnik::ZiskejHorniPravy()':

C:\Users\David \Desktop\C++\/Obdelnik.hpp:31: error: cannot convert `Bod' to `int' in return

C:\Users\David \Desktop\C++\/Obdelnik.hpp: In member function `int Obdelnik::ZiskejDolniPravy()':

C:\Users\David \Desktop\C++\/Obdelnik.hpp:32: error: cannot convert `Bod' to `int' in return

C:\Users\David \Desktop\C++\/Obdelnik.hpp: At global scope:

C:\Users\David \Desktop\C++\/Obdelnik.hpp:58: error: multiple types in one declaration

C:\Users\David \Desktop\C++\Obdelnik.cpp: In constructor `Obdelnik::Obdelnik(int, int, int, int)':

C:\Users\David \Desktop\C++\Obdelnik.cpp:10: error: `HorniLevy' undeclared (first use this function)

C:\Users\David \Desktop\C++\Obdelnik.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)

Používejte prosím tagy CODE. (martin.developer)

Předmět Autor Datum
Metody Ziskej...() máš definované jako, že vrací int ale v těle těch metod pak vracíš Bod.
Wikan 24.09.2011 16:57
Wikan
No jo, jsem to ale *****, a omlouvám se za že jsem nepoužil tag code, teď už to vím, Díky
Swix 24.09.2011 23:52
Swix
Ono si stačilo přečíst ty chybové hlášky.
Wikan 25.09.2011 10:00
Wikan
LOL, získej a nastav... oni to takhle fakt učí??? poslední
MaSo 25.09.2011 12:07
MaSo

Zpět do poradny Odpovědět na původní otázku Nahoru