2010-11-09 5 views
1

Supposons que j'ai un constructeur en C++ comme:conversion C++ classe à une classe équivalente java

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

Comment puis-je convertir en une classe équivalente en Java?

Merci,

+3

il n'est pas valide C++. params avec les défauts ne peuvent être que les derniers – Andrey

+0

J'ai corrigé cela – Neel

+0

Vraiment? Outre le problème évident signalé par Andrey, il s'agit simplement d'une déclaration de classe et d'un constructeur. Java ne prend pas en charge les valeurs d'argument par défaut, vous devrez donc utiliser le chaînage constructeur. –

Répondre

7

quelque chose comme ça

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

Ahh! Got it .. Il y a une explosion de constructeur mais je pense que cela fonctionne .. Merci! – Neel

+0

Je veux ajouter que C# 4.0 a des paramètres optionnels! (en essayant de faire passer les développeurs Java à C# :) – Andrey

+0

@ user350129 quelle explosion? – Andrey

2

Vous devez utiliser Enchaînement constructeur, comme Java n'a pas des valeurs par défaut pour les paramètres:

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

    Machine(int boltCount, boolean failure) { 
     // constructor logic 
    } 
} 
Questions connexes