Форум программистов, компьютерный форум CyberForum.ru

неправильно берёт x,y в классе ellips - C++

Восстановить пароль Регистрация
 
proech
10 / 10 / 2
Регистрация: 10.07.2013
Сообщений: 150
01.11.2013, 01:00     неправильно берёт x,y в классе ellips #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <Windows.h>
using std::cout;
using std::endl;
 
void setColor(unsigned short F,unsigned short B)
{
    void * HANDLE = GetStdHandle((DWORD)-11);
    SetConsoleTextAttribute(HANDLE,(B<<4)|F);
 
}
void Say(char* Phrase)
{setColor(12,0);
    std::cout<<Phrase<<std::endl;
    setColor(15,0);}
 
class point{
      protected:
double x;
double y;
public:
       point ():x(0),y(0){}
      point(double X,double Y){x = X;y = Y;}
      double getX(){return x;}
      double getY(){return y;}
      double SetX(double X){x = X;return x;}
      double SetY(double Y){y = Y;return y;}
      void Show(char *phrase){std::cout<<phrase<<"x:"<<x<<"y:"<<y <<std::endl;}
      void moveXY(double Xn,double Yn){x = Xn;y = Yn;Show("new Coordinats ");}
      };
 
class Circle :public point
{
protected:
 
 double radius;
        public :
            double GetRadius()
            {
              return radius;
            }
void show(char* phrase){std::cout<< phrase<<"x:"<<x<<"y:"<<y<<"r:"<<radius<<std::endl;}
 
Circle(point p,double R):point(p.getX(),p.getY()){
    
    radius = R;}
void MoveCenter(double xn,double yn){x = xn;y =yn; show("New Center Circle: ");}
};
 
class Ellips:public Circle 
{
 
    double radY;
    
public:
//строка которая меня смущает
Ellips(Circle c,double rY) : Circle(point(x,y),c.GetRadius()){
//
    {
    
        radY =  rY;
        }
}
    void show(char * phrase){std::cout<<phrase<<"rX:"<<radius<<" rY: "<< radY << "x:" <<getX()<<"y:"<<getY()<<std::endl;}
    void MoveCenterXY(double xn, double yn){x = xn;y = yn;show("New Center: Ellipse  ");
    }
};
 
      int main(int ArgCount ,char ** Arguments){
          setColor(15,0);
      point A(2,2);
     Circle B(A,5);
     Ellips C(B,4);
      A.Show("Point:");
      B.show("Circle:");
      C.show("Ellipse:");
    Say("move  x - 2 ,y - 2");
    A.moveXY(2,2);
    Say("move x - 2 ; move y - 3");
    B.MoveCenter(2,3);
    Say("move center x - 2 y - 2");
     C.MoveCenterXY(2,2);
     getchar(); 
     return 0;}
как правильно унаследовать ?

Добавлено через 3 минуты
или подскажите как правильно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 01:00     неправильно берёт x,y в классе ellips
Посмотрите здесь:

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B? C++
C++ Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе одинаковое!
C++ Функция не берёт значение переменной из программы
Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе C++
Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] C++
В классе инициализировать массив, в классе создать функцию вывода массива на экран C++
Enum в классе C++
Рекурсия в классе C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
proech
10 / 10 / 2
Регистрация: 10.07.2013
Сообщений: 150
01.11.2013, 01:04  [ТС]     неправильно берёт x,y в классе ellips #2
вот наглядно
Миниатюры
неправильно берёт x,y  в классе  ellips  
proech
10 / 10 / 2
Регистрация: 10.07.2013
Сообщений: 150
01.11.2013, 01:15  [ТС]     неправильно берёт x,y в классе ellips #3
сделал
ну ,а так по наследованию правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <Windows.h>
using std::cout;
using std::endl;
 
void setColor(unsigned short F,unsigned short B)
{
    void * HANDLE = GetStdHandle((DWORD)-11);
    SetConsoleTextAttribute(HANDLE,(B<<4)|F);
 
}
void Say(char* Phrase)
{setColor(12,0);
    std::cout<<Phrase<<std::endl;
    setColor(15,0);}
 
class point{
      protected:
double x;
double y;
public:
       point ():x(0),y(0){}
      point(double X,double Y){x = X;y = Y;}
      double getX(){return x;}
      double getY(){return y;}
      double SetX(double X){x = X;return x;}
      double SetY(double Y){y = Y;return y;}
      void Show(char *phrase){std::cout<<phrase<<"x:"<<x<<"y:"<<y <<std::endl;}
      void moveXY(double Xn,double Yn){x = Xn;y = Yn;Show("new Coordinats ");}
      };
 
class Circle :public point
{
protected:
 
 double radius;
        public :
            double GetRadius()
            {
              return radius;
            }
void show(char* phrase){std::cout<< phrase<<"x:"<<x<<"y:"<<y<<"r:"<<radius<<std::endl;}
 
Circle(point p,double R):point(p.getX(),p.getY()){
    
    radius = R;}
void MoveCenter(double xn,double yn){x = xn;y =yn; show("New Center Circle: ");}
};
 
class Ellips:public Circle 
{
 
    double radY;
    
public:
 
Ellips(Circle c,double rY):Circle(point(c.getX(),c.getY()),c.GetRadius() ){
//
    {
    
        radY =  rY;
        }
}
    void show(char * phrase){std::cout<<phrase<<"rX:"<<radius<<" rY: "<< radY << "x:" <<x<<"y:"<<y<<std::endl;}
    void MoveCenterXY(double xn, double yn){x = xn;y = yn;show("New Center: Ellipse  ");
    }
};
 
      int main(int ArgCount ,char ** Arguments){
          setColor(15,0);
      point A(3,3);
     Circle B(A,5);
     Ellips C(B,4);
      A.Show("Point:");
      B.show("Circle:");
      C.show("Ellipse:");
    Say("move  x - 2 ,y - 2");
    A.moveXY(2,2);
    Say("move x - 2 ; move y - 3");
    B.MoveCenter(2,3);
    Say("move center x - 2 y - 2");
     C.MoveCenterXY(2,2);
     getchar(); 
     return 0;}
Yandex
Объявления
01.11.2013, 01:15     неправильно берёт x,y в классе ellips
Ответ Создать тему
Опции темы

Текущее время: 13:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru