您的位置:首页 > 其它

关于头文件写类成员函数实现,编译时报“重复定义的符号”

2013-05-29 10:39 513 查看
//头文件A
class A
{
void foo(){}
};


//头文件B
class B
{
void foo();
};

void B::foo()
{}


//头文件C
template<class T>
class C
{
void foo();
};

template<class T>
void C<T>::foo()
{
}


  

如果有两个文件同时包含头文件A,编译没问题,因为这种写法默认了foo为内联函数。

如果有两个文件同时包含头文件B,编译报重复定义的符号,因为这个函数会被链接两次。

如果有两个文件同时包含头文件C,编译没问题,因为类模板只有当需要实例化的时候才会被编译链接。

如理解有错误请指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐