C ++, bağımsız değişkenler beklenen türler değilse, parametre türlerinin eşleşen yapıcılarını otomatik olarak çağıran bir özelliğe sahiptir (doğru adını anlayamıyorum).
Bunun çok temel bir örneği, std::string
bir const char*
argümanla beklenen bir işlevi çağırmaktır . Derleyici, uygun kurucuyu çağırmak için otomatik olarak kod oluşturur std::string
.
Merak ediyorum, düşündüğüm kadar okunabilirlik için kötü mü?
İşte bir örnek:
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);
Bu iyi mi? Yoksa çok mu ileri gidiyor? Eğer yapmamam gerekirse, bir şekilde Clang veya GCC'yi uyarması yapabilir miyim?