读书人

在构造体中定义一个友元函数有什么意义

发布时间: 2013-01-28 11:49:56 作者: rapoo

在结构体中定义一个友元函数有什么意义吗
最近在编译一段代码,代码不是本人所写,内容大概如下
头文件内容
namespace NA
{
struct SA
{
friend SA Fun(SA& S);
}
}
源文件内容
NA::SA NA::Fun(SA& S)
{
}
在gcc 4.1.2下编译正常通过,但是在gcc4.2.1下编译就提示函数在NA中未声明。
但是我又不想换编译器所以想通过修改代码来解决,我把友元函数声明成结构体外的普通函数就不会再报编译错误,不知道这种方法可行吗,在这种情况下结构体内的友元跟结构体外的普通函数有什么区别吗?
[解决办法]

namespace NA
{
struct SA
{
friend SA Fun( SA& S );
};

SA Fun( SA& S );
}

NA::SA NA::Fun( SA& S )
{
}

int main()
{
return 0;
}

读书人网 >C++

热点推荐