นี่คือคลาส 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..
ฉันไม่ค่อยเห็นสองคนนี้ แต่เป็นอนุสัญญาที่คล้ายกัน
ฉันควรทำลายหรือยอมรับนิสัยนี้หรือไม่?