C ++에는 인수 유형이 예상되는 것이 아닌 경우 매개 변수 유형의 일치하는 생성자를 자동으로 호출하는 기능 (적절한 이름을 알 수 없음)이 있습니다.
이것의 가장 기본적인 예 std::string
는 const char*
인수 를 기대하는 함수를 호출하는 것입니다 . 컴파일러는 자동으로 적절한 std::string
생성자 를 호출하는 코드를 생성합니다 .
궁금합니다. 생각보다 가독성이 좋지 않습니까?
예를 들면 다음과 같습니다.
class Texture {
public:
Texture(const std::string& imageFile);
};
class Renderer {
public:
void Draw(const Texture& texture);
};
Renderer renderer;
std::string path = "foo.png";
renderer.Draw(path);
괜찮아? 아니면 너무 멀어요? 하지 말아야 할 경우 Clang 또는 GCC가 경고 할 수 있습니까?