Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2013, 00:07   #1
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию неправильно берёт x,y в в классе ellips

Код:
#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(point::x,point::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;}
proef вне форума Ответить с цитированием
Старый 31.10.2013, 22:46   #2
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

скорее всего дело в этой строке
proef вне форума Ответить с цитированием
Старый 01.11.2013, 01:12   #3
proef
Форумчанин
 
Регистрация: 08.06.2013
Сообщений: 133
По умолчанию

сделал сам
Код:


#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(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;}
ну а так по наследованию правильно?
proef вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
htons - не берёт порт из структуры frommars C/C++ Сетевое программирование 2 05.03.2013 14:03
Структура в классе ArmanPrestige Общие вопросы C/C++ 4 24.06.2012 20:24
Функции в классе enzaime Помощь студентам 0 20.05.2012 13:19
Виста не берёт родные дрова Fainder Свободное общение 7 09.09.2007 21:52