Member 14916474 Ответов: 3

Как я могу конвертировать java oop в C++ oop?


пакет Садовый;



публичный класс OP
{
поплавок поля num1;
public OP(float num1){this.num1=num1;}
общественные ОР(){
}
публичное размещение getNum1(){
возврат num1;
}
public void setNum1(float num1){
это.поля num1=num1 как;
}
публичная строка печати(){
возврат "num1=" + num1;
}
оператор общественного недействительными 1(){
++поля num1;
}
оператор общественного поплавка 2(){
num1 как--;
возврат num1;
}
}
публичный класс TestOP{
публичный статический пустота главный(строка[] аргументы){
OP p=новый OP(2);
п. operator1();
системы.из.prinln(стр. печать));
п. оператором 2();
system.out.println(p.print());
}
}

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

привет
как я могу преобразовать этот код в c++ oop?

Richard MacCutchan

Вы не можете переопределить числа как операторы.

3 Ответов

Рейтинг:
25

OriginalGriff

Это не служба преобразования кода: мы здесь не для того, чтобы переводить код для вас.
Даже если бы мы это сделали, то в конечном итоге вы получили бы не “хороший код” на целевом языке – они основаны на очень разных фреймворках, и то, что заставляет что-то работать на одном языке, не всегда “переводится” непосредственно на другой.
Таким образом, вы получаете очень плохой код, который трудно, если не невозможно поддерживать, который не может быть хорошо обновлен, и это вызовет у вас огромную головную боль, если оригинал будет изменен. И это будет кошмар для отладки, если он не будет работать “прямо из коробки”.
Вместо этого используйте исходный код в качестве спецификации для нового приложения, написанного на целевом языке / фреймворке, и напишите его w=с нуля, используя оригинал в качестве “шаблона”. Вы получите гораздо, гораздо лучший результат, который сэкономит вам много времени в долгосрочной перспективе.

В этом конкретном случае, если вы не можете создать свою собственную версию этого тривиального кода, вам следует подумать о смене курсов: студент второй недели должен быть в состоянии написать это на C++ без какой - либо помощи вообще.


Рейтинг:
2

KarstenK

Это не трудно переписать код на C++, но вам нужно изучить его из какого-то учебника, например Изучайте C++.

Совет: используйте Visual Studio


Рейтинг:
1

Shao Voon Wong

Нетрудно преобразовать этот код Java в C++, потому что он не использует расширенный синтаксис Java или библиотеки. Просто замените все public и private ключевое слово с public: и private: а также заменить this.num1 с this->num1 а также заменить String с std::string. Добавьте точку с запятой в конце класса OP (от } к };)

С++ main() не нужно быть в классе, потому что C++ не является строго ООП, поэтому я удаляю TestOP класс

Внутри main(), заменять system.out.println код с помощью std::cout. Не нужно создавать экземпляр объекта OP в куче с помощью new ключевое слово. Просто на стеке все будет в порядке.

#include <iostream>
#include <string>

class OP
{
private:
    float num1;
public:
    OP(float num1) { this->num1 = num1; }
    float getNum1() {
        return num1;
    }
    void setNum1(float num1) {
        this->num1 = num1;
    }
    std::string print() {
        return std::string("num1= ") + std::to_string(num1);
    }
    void operator1() {
        ++num1;
    }
    float operator2() {
        num1--;
        return num1;
    }
};

int main()
{
    OP p(2);
    p.operator1();
    std::cout << p.print() << std::endl;
    p.operator2();
    std::cout << p.print() << std::endl;

    return 0;
}