7
假設我定義的隱式轉換功能,對自己說:隱式轉換函數會自動調用嗎?
#include <iostream>
class Foo {
public:
operator Foo() {
std::cout << "wha??\n";
return Foo();
}
};
void f(Foo f) {}
int main() {
Foo foo;
f(foo);
}
我爲什麼要定義這個?那麼我不會直接寫它,但它可以通過我正在寫的模板類中的模板實例化來實現。如果發生這種情況,我希望定義轉換函數實際上是無效的,並且不可能實際調用。
上面的程序沒有打印任何東西(這很棒)。有沒有什麼情況下這個轉換函數實際上會被調用?
哎呀!這是一個錯字。固定。 –