Cuzuc Vlad-Andrei Ответов: 2

Как я могу преобразовать этот класс C++ в класс C#?


Мне нужно для школьного проекта сделать poin-класс. Я больше работаю в C++. Я начал изучать c# три недели назад и не понимал разницы между классами C# и C++.

Что я уже пробовал:

class point{
    public:   
        int x;
        int y;
    point() : x(0), y (0) {
    }

    point( int x, int y ){
        this->x = x;
        this->y = y;
    }
    
    point( const point& from ){
        this->x = from.x;
        this->y = from.y;
    }
    
    point& operator = ( const point& from ){
        this->x = from.x;
        this->y = from.y;
        return *this;
    }
    
    bool operator == ( const point& from ){
        return ((this->x == from.x ) && (this->y == from.y ));
    }
    
    ~point() {}
};

2 Ответов

Рейтинг:
5

Cuzuc Vlad-Andrei

Я нашел хороший конвертер C++ => C# для тех, кто оказался бы в такой же ситуации, как и я.

Ссылка: Скачать[^]


phil.o

Использование конвертера для такой тривиальной структуры, как точка, является своего рода безумием. Почему бы вместо этого не изучить различия между C++ и C#? Такой объект вполне удобная, чтобы выучить новый язык объектно-ориентированного программирования.

Cuzuc Vlad-Andrei

Мне нужно закончить свой проект на завтра! :) Мне нужно что-то быстрое в этот момент.

Рейтинг:
1

OriginalGriff

Забудьте о своем классе C++ и подумайте о нем с точки зрения C# - если вы не начнете делать это в какой-то момент, вы всегда будете "думать на C++", а это означает, что вы не обязательно будете создавать хороший код C#.

Начните с основ и создайте контур класса:

public class MyPoint
   {
   public MyPoint(int x, int y)
      {
      }
   }
Затем добавьте к нему два свойства X и Y и соедините их в конструкторе.
Добавьте второй конструктор для клонирования существующей точки MyPoint.
Добавьте оператор присваивания.
Добавьте оператор сравнения.

Это не сложно, но C# и C++ - это разные языки, которые имеют много общего синтаксиса. Кодирование на C++ и преобразование его в C# не дает хорошего кода, он производит код C++ в "оболочке"C#. Научитесь думать на языке C# и просто используйте свой предыдущий опыт программирования, чтобы помочь вам проектировать, а не создавать код.


Richard Deeming

Это может помочь, если имя конструктора совпадает с именем класса! :Д

OriginalGriff

Это так!
Здесь нечего смотреть, двигайся дальше, двигайся дальше ... :румянец:

Richard Deeming

Вам повезло, что ссылка на историю версий все еще сломана! 🤣