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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2013, 22:47   #1
Artem131
Новичок
Джуниор
 
Регистрация: 17.04.2013
Сообщений: 1
По умолчанию Проверить код

Из С#
Код:
abstract class Demo / / абстрактний клас
  {
    abstract public void Show () ;/ / абстрактний метод
    abstract public double Dlina () ;/ / абстрактний метод
  }

  class DemoPoint: public Demo / / похідний клас від абстрактного
  {
    protected int x;
    protected int y;
    public DemoPoint (int x, int y)
    {
      this.x = x; this.y = y;
    }
    public override void Show () / / перевизначення абстрактного методу
    {
      Console.WriteLine ("точка на площині: ({0}, {1})", x, y);
    }
    public override double Dlina () / / перевизначення абстрактного методу
    {
      return Math.Sqrt (x * x + y * y);
    }
  }

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

  class DemoLine: public  DemoPoint / / похідний клас
  {
    protected int x2;
    protected int y2;
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;
    }
    public override void Show () / / перевизначення абстрактного методу
    {
      Console.WriteLine ("відрізок на площині: ({0}, {1}) - ({2}, {3})", x, y, x2,  y2);
    }
    public override double Dlina () / / перевизначення абстрактного методу
    {
      return Math.Sqrt ((x-x2) * (x-x2) + (y-y2) * (y-y2));
    }
  }
  
  class Program
  {
    static void Main ()
    {
      Demo [] Ob = new Demo [5]; / / масив посилань
      / / Заповнення масиву посиланнями на об'єкти похідних класів
      Ob [0] = new DemoPoint (1,1);
      Ob [1] = new DemoShape (1,1,1);
      Ob [2] = new DemoLine (0,3,4,0);
      Ob [3] = new DemoLine (2,1,2,10);
      Ob [4] = new DemoPoint (0,100);
      foreach (Demo a in Ob) / / перегляд масиву
      {
        a.Show ();
        Console.WriteLine ("Dlina: {0: f2} \ n", a.Dlina ());
      } } }
пытаюсь переделать в С++
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
abstract class Demo // абстрактний клас
  {
    abstract public void Show () ;// абстрактний метод
    abstract public double Dlina () ;// абстрактний метод
  }
 
  class DemoPoint: public Demo // похідний клас від абстрактного
  {
    protected int x;
    protected int y;
    public DemoPoint (int x, int y)
    {
      this.x = x; this.y = y;
    }
  public : void Show () // перевизначення абстрактного методу
    {
      cout<<"точка на площині: ({0}, {1})"<<x<<y);
    }
  public : double Dlina () // перевизначення абстрактного методу
    {
      returnSqrt (x * x + y * y);
    }
  }
 
  class DemoShape: public DemoPoint // похідний клас
  {
    protected int z;
    public DemoShape (int x, int y, int z): base (x, y)
    {
      this.z = z;
    }
  public : void Show () // перевизначення абстрактного методу
    {
      cout<<"точка в просторі: ({0}, {1}, {2})"<<x<<y<<z);
    }
    public override double Dlina () // перевизначення абстрактного методу
    {
      return Sqrt (x * x + y * y + z * z);
    }
  }
 
  class DemoLine: public  DemoPoint / / похідний клас
  {
    protected int x2;
    protected int y2;
    public DemoLine (int x1, int y1, int x2, int y2): base (x1, y1)
    {
      this.x2 = x2; this.y2 = y2;
    }
    public override void Show () // перевизначення абстрактного методу
    {
      cout<<"відрізок на площині: ({0}, {1}) - ({2}, {3})"<<x<<y<<x2<<y2;
    }
    public override double Dlina () // перевизначення абстрактного методу
    {
      return Math.Sqrt ((x-x2) * (x-x2) + (y-y2) * (y-y2));
    }
  }
  
  int _tmain(int argc, _TCHAR* argv[])
{
      Demo [] Ob = new Demo [5]; // масив посилань
      // Заповнення масиву посиланнями на об'єкти похідних класів
      Ob [0] = new DemoPoint (1,1);
      Ob [1] = new DemoShape (1,1,1);
      Ob [2] = new DemoLine (0,3,4,0);
      Ob [3] = new DemoLine (2,1,2,10);
      Ob [4] = new DemoPoint (0,100);
      foreach (Demo a in Ob) // перегляд масиву
      {
        a.Show ();
        cout<<"Dlina: {0: f2} \ n"<<a.Dlina ();
      } } }
Подскажите где ошибки и если не трудно напишите правильный вариант.
Заранее спасибо.
Artem131 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо проверить код. С++ . Kirill_Y Помощь студентам 4 28.10.2012 10:59
проверить код и защита cargo29 PHP 5 24.10.2012 11:55
проверить код delfin07 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 21.02.2012 13:58
Прошу проверить код pandaaaaa Паскаль, Turbo Pascal, PascalABC.NET 6 14.12.2011 01:58
Прошу проверить код программы Pashtet Паскаль, Turbo Pascal, PascalABC.NET 1 19.11.2008 11:50