Anonymní profil Oplis – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Oplis – Programujte.comAnonymní profil Oplis – Programujte.com

 

Příspěvky odeslané z IP adresy 213.71.21.–

C / C++ › Metoda volá metodu
30. 8. 2012   #162398
C / C++ › Metoda volá metodu
30. 8. 2012   #162394

#3 delicacyy
No, máš tam pár blbostí

- konstruktor má 4 parametry, to je OK, ale na začátku definuješ 4 hodnoty int které neinicializuješ (májí náhodné hodnoty) a ty pak přiřazuješ proměnným - není splněna podmínka ze zadání "Při definici proměnné kružnice mám předat do konstruktoru vhodné hodnoty"

- Pracuješ vždy s tím jedním objektem, proto metodě readValues nemusíš předávat parametr na jiný objekt, viz. "void readValues(Circle circ)"

- Metoda readValues patří třídě Circle, proto při definici metody musíš použít tvat "void Circle::readValues() {...}

- V té metodě readValues se mají jen zadat hodnoty, resp. zadat hodnoty, proto nevím, proč se je tam snažís v cout vypisovat. Navíc jak řekl vitamin, mají návratový typ void, proto ani nemají co vypisovat

Upravený kód:

circle.h

#include <iostream>
#ifndef _CIRCLE_H_
#define _CIRCLE_H_

using namespace std;

 class Circle
{
  public:
    Circle(int ax, int ay, int r, int c);
    void setCentre(int ax, int ay);
    void setRadius(int r);
    void setColor(int c);
    void printValues() const;
    void draw();
    void readValues();
    void readCentre()
     {
      int x, y;
      cout<<"Zadejte souradnice stredu: ";
      cin>>x>>y;
      this->setCentre(x,y);
     }

    void readRadius()
    {
     int r;
     cout<<"Zadejte polomer: ";
     cin>>r;
     this->setRadius(r);
 }
    void readColor()
     {
      int c;
      cout<<"Zadejte barvu: ";
      cin>>c;
      setColor(c);
     }

  private:
    int x, y;
    int radius;
    int color;
};

#endif
--------------------------------------------
circle.cpp

#include <iostream>
#include "circle.h"
#include <g2.h>
#include <g2_X11.h>

using namespace std;

Circle::Circle(int ax, int ay, int r, int c)
{
    x=ax;
    y=ay;
    radius=r;
    color=r;
}

void Circle::setCentre(int ax, int ay)
{
    x=ax;
    y=ay;
}

void Circle::setRadius(int r)
{
    radius=r;
}

void Circle::setColor(int c)
{
    color=c;
}

void Circle::printValues() const
{
    cout<<"Souradnice: "<<x<<", "<<y<<endl;
    cout<<"Polomer: "<<radius<<endl;
    cout<<"Barva: "<<color<<endl;
}

void Circle::draw()
{
    int dev = 0;
    dev = g2_open_X11(600, 600);  // Otevreni okna
    g2_set_line_width(dev, 5);    // Tloustka cary bude 5 pixelu
    g2_pen(dev, color);
    g2_circle(dev, x, y, radius);
}

void Circle::readValues()
{
  readCentre();
  readRadius();
  readColor();
}
---------------------------------------------
main.cpp

#include <iostream>
#include "circle.h"

using namespace std;

int main()
{
    Circle circ(5, 4, 7, 1);
    circ.readValues();
    circ.printValues();
    circ.draw();
    cin.get();
    cin.get();
    return 0;
}

Vidím, že ti nejsou moc jasné základy OOP.....chce to nějaký dobrý studijní materiál....velmi dobré je Mistrovství v C++. Pokud to myslíš s programováním vážně, asi by se vyplatilo investovat do kvalitní literatury

Oplis
C / C++ › Konstruktor bez parametrů
28. 8. 2012   #162298

#1 delicacyy
 

main.cpp

#include <iostream>
#include "circle.h"

using namespace std;

int main()
{
    Circle circ;
    int x, y, r, c;
    cout<<"Zadejte souradnice stredu: ";
    cin>>x>>y;
    circ.setCentre(x,y);
    cout<<"Zadejte polomer: ";
    cin>>r;
    circ.setRadius(r);
    cout<<"Zadejte barvu: ";
    cin>>c;
    circ.setRadius(c);
    circ.printValues();
    circ.draw();
    return 0;
}


circle.h

#ifndef _CIRCLE_H_
#define _CIRCLE_H_

class Circle
{
  public:          // Verejne cleny tridy
    Circle();
    void setCentre(int ax, int ay);
    void setRadius(int r);
    void setColor(int c);
    void printValues() const;
    void draw();
  private:         // Soukrome cleny tridy
    int x, y;
    int radius;
    int color;
   // void printValues();
};
#endif


circle.cpp
#include <iostream>
#include "circle.h"
#include <g2.h>
#include <g2_X11.h>

using namespace std;

Circle::Circle()
{
    x=1;
    y=1;
    radius=1;
    color=1;
}

void Circle::setCentre(int ax, int ay)
{
    x=ax;
    y=ay;
}

void Circle::setRadius(int r)
{
    radius=r;
}

void Circle::setColor(int c)
{
    color=c;
}

void Circle::printValues() const
{
    cout<<"Souradnice: "<<x<<", "<<y<<endl;
    cout<<"Polomer: "<<radius<<endl;
    cout<<"Barva: "<<color<<endl;
}

void Circle::draw()
{
    int dev = 0;
    dev = g2_open_X11(400, 300);  // Otevreni okna
    g2_set_line_width(dev, 5);    // Tloustka cary bude 5 pixelu
    g2_pen(dev, color);
    g2_circle(dev, x, y, radius);
}

Napriklad takto.....jeste se to da upravit, napr. osetreni vstupu atd. Je to jen hruby nastrel

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý