函数首选的解释

时间:2016-01-10 14:26:48

标签: c++ scope overloading

假设我有以下程序:

template <class X> void foo(X val) { }

template <> void foo<double>(double val) { }

class obj
{
public:
   void callFoo() { foo(7.3); }
private:
   void foo(int val) { }
};

int main()
{
    obj o;
    o.callFoo();
}

为什么选择foo(int val)? 它不应该是foo<double>(double val)吗? 我想也许类范围导致foo(int val)被调用。

0 个答案:

没有答案