İşte üç değerden oluşan bir C ++ sınıfıdır.
class Foo{
//Constructor
Foo(std::string, int, char);
private:
std::string foo;
char bar;
int baz;
};
Tüm parametre tipleri farklıdır.
Yapıcıyı aşırı yükleyebilirim, böylece sipariş önemli değil.
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;
};
Ama bu iyi bir fikir mi?
Yapmaya başladım çünkü bir sınıfın / işlevin neye ihtiyacı olduğunu biliyordum;
Onları hangi sıraya soktuğumu her zaman hatırlamadım.
Derleyicinin bunu aynı yapıcıyı çağırdığım gibi optimize ettiğini farz ediyorum.
//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");
Bir işlevin aşırı yüklenmesine ilişkin düşünceleriniz nelerdir ki, sipariş önemli değil?
Ayrıca, bazı yardımcı fonksiyonlar yazıyorsam
, aynı şeyi yapan farklı fonksiyon adları sağlamak iyi bir fikir midir?
Örneğin.
void Do_Foo();
void DoFoo();
void do_foo();
//etc..
Bu ikisini ancak benzer sözleşmeleri sık görmüyorum.
Alışkanlığı bozmalı mı yoksa kucaklamalı mıyım?