函数、成员函数、友元函数:他们该以什么样的准则出现在我们的代码中?
终于可以在工作之余可以整理整理自己的知识网络了。最近正在花时间看别人整理好的关于C++ Idioms的相关内容,期间看到了Meyers关于如何界定你的函数应该是一个普通的函数,还是成员函数或者友元函数。牛人总结得就是到位,顺带就帖在这里。不过感觉没啥好解释的。
Given a class T and a function f:
if (f needs to be virtual)
{
f should be a member function of T;
}
else if ( (f is operator>>) or (f is operator<<) or (f needs type conversions on its left-most argument) )
{
f should be a non-member function;
if (f needs access to non-public members of T)
{
f should be a friend of T;
}
}
else if (f can be implemented via T's public interface)
{
f should be a non-member function;
}
else
{
f should be a member function of T;
}
posted on 2013-10-08 11:45 wpcockroach 阅读(295) 评论(0) 编辑 收藏 举报