Переделать программу из C# в C++

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
abcgeorgii
Сообщения: 10
Зарегистрирован: 28 апр 2013, 19:53

Переделать программу из C# в C++

Код: Выделить всё

class DemoPoint / / базовий клас
  {
    protected int x;
    protected int y;
    public virtual void Show () / / віртуальний метод
    {
      Console.WriteLine ("точка на площині: ({0}, {1})", x, y);
    }
    public DemoPoint (int x, int y)
    {
      this.x = x; this.y = y;
    }
  }
  class DemoShape: DemoPoint / / похідний клас
  {
    protected int z;
    public override void Show () / / перевантаження віртуального методу
    {
      Console.WriteLine ("точка в просторі: ({0}, {1}, {2})", x, y, z);
    }

    public DemoShape (int x, int y, int z): base (x, y) / / конструктор похідного класу
    {
      this.z = z;
    }

  }
  class DemoLine: DemoPoint / / похідний клас
  {
    protected int x2;
    protected int y2;
    public override void Show () / / перевантаження віртуального методу
    {
      Console.WriteLine ("відрізок на площині: ({0}, {1}) - ({2}, {3})", x, y, x2, y2);
    }
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;}}
  class Program
  {
    static void Main ()
    {
      DemoPoint point1 = new DemoPoint (0,1);
      point1.Show ();
      DemoShape pointShape = new DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine line = new DemoLine (0,0, 10, 10);
      line.Show ();
      Console.WriteLine ();
      / / Використання посилання базового класу на об'єкти похідних класів
      DemoPoint point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
    }
  }
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

что именно не получается?
Приглашаю на свой блог о программировании: pro-prof.com
abcgeorgii
Сообщения: 10
Зарегистрирован: 28 апр 2013, 19:53

Не получается реализовать виртуальный метод и конструкторы.
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

напиши что получается, мы поправим
Приглашаю на свой блог о программировании: pro-prof.com
abcgeorgii
Сообщения: 10
Зарегистрирован: 28 апр 2013, 19:53

Код: Выделить всё

#include "stdafx.h"
#include <iostream>
using namespace std;
class DemoPoint // базовий клас
    {
    public: int x;
            int y;
            void Show()
        {
            cout<<"({"<<x<<"}, {"<<y<<"})"<<endl;
        }
    };
 
    class DemoLine :p ublic DemoPoint // похідний клас
    {
    public: int xEnd;
            int yEnd;
            void Show()
        {
            cout<<"({"<<x<<"}, {"<<y<<"}) - ({"<<xEnd<<"}, {"<<yEnd<<"})"<<endl;
        }
    };
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    DemoPoint point ;
            point.x = 0;
            point.y = 0;
            point.Show();
            DemoLine line ;
            line.x = 2; line.y = 2;
            line.xEnd = 10; line.yEnd = 10;
            line.Show();
            int temp;
            cin>>temp;
    return 0;
}
Помогите вписать конструкторы и виртуальный метод.
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

#include <iostream>
class DemoPoint { / / базовий клас
protected:
    int x, y;
public:
    virtual void Show () {
      std::cout << "точка на площині: " << x <<  y;
    }
    DemoPoint (int tx, int ty) : x(tx), y(ty) { }
  };
Приглашаю на свой блог о программировании: pro-prof.com
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

class DemoShape: public DemoPoint { / / похідний клас
protected:
  int z;
public:
    void Show () { / / перевантаження віртуального методу
      std::cout << x << y << z;
    }

    DemoShape (int tx, int ty, int tz): base (x, y), z(tz) { } / / конструктор похідного класу
  };
Приглашаю на свой блог о программировании: pro-prof.com
abcgeorgii
Сообщения: 10
Зарегистрирован: 28 апр 2013, 19:53

Код: Выделить всё

#include "stdafx.h"
#include <iostream>
using namespace std;
class DemoPoint // базовий клас
    {
    protected:
    int x, y;
public:
    virtual void Show () {
      cout << "точка на площині: " << x <<  y;
    }
    DemoPoint (int tx, int ty) : x(tx), y(ty) { }
  };
 class DemoShape: public DemoPoint { // похідний клас
protected:
  int z;
public:
    void Show () { // перевантаження віртуального методу
      cout << x << y << z;
    }

    DemoShape (int tx, int ty, int tz): base (x, y), z(tz) { } // конструктор похідного класу
  };
    class DemoLine :p ublic DemoPoint // похідний клас
    {
    public: int x;
            int yEnd;
            void Show()
        {
            cout<<"({"<<x<<"}, {"<<y<<"}) - ({"<<xEnd<<"}, {"<<yEnd<<"})"<<endl;
        }
    };
 class DemoLine: public DemoPoint // похідний клас
  {
  protected :int x2;
    int y2;
  public :o verride void Show () // перевантаження віртуального методу
    {
      cout<<"відрізок на площині: ({0}, {1}) - ({2}, {3})"<< x<< y<< x2<< y2;
    }
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;}}

int _tmain(int argc, _TCHAR* argv[])
{
    DemoPoint point1 = new DemoPoint (0,1);
      point1.Show ();
      DemoShape pointShape = new DemoShape (2,3,4);
      pointShape.Show ();
      DemoLine line = new DemoLine (0,0, 10, 10);
      line.Show ();
      Console.WriteLine ();
      // Використання посилання базового класу на об'єкти похідних класів
      DemoPoint point2 = pointShape;
      point2.Show ();
      point2 = line;
      point2.Show ();
    return 0;
}
Вставил, но что изменить в функции tmain?
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

DemoShape *pointShape = new DemoShape (2,3,4);
Приглашаю на свой блог о программировании: pro-prof.com
abcgeorgii
Сообщения: 10
Зарегистрирован: 28 апр 2013, 19:53

Если не трудно выложите код. Просто я этой программой реально запутался.
Ответить