3
我有一個函數(和一個構造函數)應該能夠採取整數和浮點值。事實上,我希望它採取int64_t
或long double
,所以我想的是,浮點和整數模糊
class Foo {
public:
Foo(int64_t value=0);
Foo(long double value);
};
但如果我這樣做,並嘗試Foo f = 1;
編譯器抱怨從int
到Foo
是曖昧的轉換。好吧,但如果我改變第一個構造函數採取int32_t
沒有這樣的歧義。任何人都可以向我解釋爲什麼會出現這種情況。
啊,是的,謝謝。說得通。我有點驚訝,儘管編譯器不認爲'int64_t'與'int'比'double'更接近匹配。 (我猜是因爲轉換是一種轉換,這就是它所擔心的(?)) – tjm 2010-10-03 20:10:23