다음은 세 가지 값으로 구성된 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..
나는 종종이 두 가지이지만 비슷한 규칙을 보지 못합니다.
습관을 깨거나 받아 들여야합니까?