以下は、3つの値で構成されるC ++クラスです。
class Foo{
//Constructor
Foo(std::string, int, char);
private:
std::string foo;
char bar;
int baz;
};
すべてのパラメータータイプは異なります。
順序が問題にならないように、コンストラクタをオーバーロードできます。
class Foo{
//Constructors
Foo(std::string, char, int);
Foo(std::string, int, char);
Foo(char, int, std::string);
Foo(char, std::string, int);
Foo(int, std::string, char);
Foo(int, char, std::string);
private:
std::string foo;
char bar;
int baz;
};
しかし、それは良い考えですか?
クラス/関数に必要なものがわかっていたので、それを始めました。
私はそれがそれらをどの順序で取ったかをいつも覚えていませんでした。
私は、コンパイラーが同じコンストラクターを呼び出したかのように、コンパイラーがこれを最適化すると仮定してきました。
//compiler will implement this with the same code?
//maybe not.. I could call a function to get a parameter,
//and that function could change the state of the program, before calling
//a function to get another parameter and the compiler would have to
//implement both
Foo foo1("hello",1,'a');
Foo foo2('z',0,"world");
順序が関係ないように関数をオーバーロードすることについて、あなたの意見は何ですか?
また、いくつかのユーティリティ関数を書いている場合
、同じことをする異なる関数名を提供することは良い考えですか?
例えば。
void Do_Foo();
void DoFoo();
void do_foo();
//etc..
私はこれらの2つの類似した規則を頻繁に見ません。
習慣を破るか、受け入れるべきですか?