私はこのコンストラクタがあります。C++のコンストラクタエラー
member(char* name,char* lastName,int age, char* gender);
を、私はメンバーを作成するために私のメイン機能でこれを持っています。
member("John","Smith",20);
私は、私はエラーを取得する4つのパラメータのうちの3を提供しているので: 候補は4つの引数、3は提供を期待しています。 パラメータを逃してもスキップするように修正する方法。
私はこのコンストラクタがあります。C++のコンストラクタエラー
member(char* name,char* lastName,int age, char* gender);
を、私はメンバーを作成するために私のメイン機能でこれを持っています。
member("John","Smith",20);
私は、私はエラーを取得する4つのパラメータのうちの3を提供しているので: 候補は4つの引数、3は提供を期待しています。 パラメータを逃してもスキップするように修正する方法。
最後の引数のデフォルト値を指定する必要があります。次のようなものがあります:
member(char *name, char *lastName, int age, char* gender = NULL);
最後の引数が指定されていない場合は、デフォルト値のNULLが使用されます。
多かれ少なかれパラメータが必要な状況では、関数のオーバーライドを作成できます。
たとえば、4つのパラメータを取り、それを適切に処理し、もう1つが3をとり、独自の方法で処理するという点を除いて、同じ名前の2つのコンストラクタを作成できます(明らかに)。
例:
member(char name, char lastName, int age){
//Do stuff here for the situation where 3 parameters are inputed
}
member(char name, char lastName, int age, char gender){
//Do stuff here for the situation where 4 parameters are inputed
}
私はこのために1つのコンストラクタを使用する必要があります@Bhaskar –
あなたは、たとえば、一つの関数のために複数の署名を提供することができます。デフォルト値で
member(char* name, char* lastName, int age)
と
member(char* name, char* lastName, int age, char* gender)
使用パラメータ。 –
どうすればいいですか?主な機能で2つのメンバーを作成すると動作しますか?メンバー(「Mary」、「Smith」、「Female」など) メンバー( "John"、 "Smith"、20); –
さて、あなたは3つの引数でそれを呼び出すと、何が起こりたいですか? – juanchopanza