首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++一个奇怪的有关问题

2014-01-14 
C++一个奇怪的问题#include iostreamtemplate typename Tclass C{friend void f(){std::cout f() c

C++一个奇怪的问题

#include <iostream>
template <typename T>
class C{
friend void f(){std::cout<< "f() called "<<std::endl;};
friend void f(C<T>*){std::cout<< "f(C<T> const&) called"<<std::endl;};
};

int main()
{
C<int> *p;
//f();   // f was not declared
f(p);// but , f(C<T>*) has been declared
return 0;
}

为什么f()未声明,而f(C<T>*)已声明呢?
[解决办法]
LZ google 一下 ADL (Argument-Dependent Lookup)

热点排行