2010-11-09 2 views
1

Предположим, что у меня есть конструктор в C++ как:преобразования класса C++ в эквивалентный класс Java

public class Machine { 
public: 
Machine(int boltCount, bool failure=false); 
}; 

Как преобразовать это в эквивалентный класс в Java?

Спасибо,

+3

это не действует C++. params с значениями по умолчанию могут быть только последними – Andrey

+0

Я исправил это – Neel

+0

Действительно? Помимо очевидной проблемы, отмеченной Андреем, это просто объявление класса и конструктор. Java не поддерживает значения аргументов по умолчанию, поэтому вам придется использовать цепочку конструкторов. –

ответ

7

что-то подобное

public class Machine { 
    public Machine(int boltCount) { this(boltCount, false); } 
    public Machine(int boltCount, bool failure) { /*body here*/ } 
}; 
+0

Ahh! Получил это. Существует взрыв конструктора, но я думаю, что это работает .. Спасибо! – Neel

+0

Я хочу добавить, что C# 4.0 имеет дополнительные параметры! (пытаясь заставить разработчиков Java перейти на C# :) – Andrey

+0

@ user350129 какой взрыв? – Andrey

2

Вы должны использовать конструктор цепочки, поскольку Java не имеет значения по умолчанию для параметров:

public class Machine { 
    Machine(int boltCount) { 
     this(boltCount, false); 
    } 

    Machine(int boltCount, boolean failure) { 
     // constructor logic 
    } 
} 
Смежные вопросы