

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 returnC:\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)
LOL, získej a nastav... oni to takhle fakt učí???