C++代码中在类里面需要工具类的函数,你用哪种方式声明这个函数?

神-气 2014-04-28 05:56:47
有时候我们经常会碰到在C++代码中在类里面需要工具类的函数,那么你的工具类函数是全局函数?静态成员函数?普通成员函数(内部访问成员变量)?普通成员函数(成员变量作为参数传入)?


#include <iostream>
using namespace std;

//method D
static int SumD(int x, int y)
{
return x + y;
}

class CTest
{
public:
void SetVals(int x, int y)
{
m_nX = x;
m_nY = y;
}
int GetOpResult() const
{
return SumC(m_nX, m_nY); // A B C D ?
}
private:
// method A
int SumA() const
{
return m_nX + m_nY;
}
// method B
static int SumB(int x, int y)
{
return x + y;
}
// method C
int SumC(int x, int y) const
{
return x + y;
}
private:
int m_nX = 0;
int m_nY = 0;
};


//@TODO("not implements");
//@FIEME("not implements");
//@HACK("not implements");
//@XXX("not implements");
int main(int argc, char* argv[])
{
CTest t;
int x = 10;
int y = 11;
t.SetVals(x, y);
int nResult = t.GetOpResult();
cout << x << " + " << y << " = " << nResult << endl;
return 0;
}
...全文
617 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TheNewIpad 2014-05-04
  • 打赏
  • 举报
回复
引用 1 楼 akirya 的回复:
某个名字空间下的 全局函数。
俺也是 一般不需要直接访问类成员的, 都生成关联函数。 表现形式都是 1、 如果关联函数与类经常一起出现,放在类头文件中声明。 2、 如果该关联函数跟某个类关系不大,所有类都需要。表现为: 命名空间下的全局函数。 在一个单独的文件中实现。
buyong 2014-05-04
  • 打赏
  • 举报
回复
友元类
ningto.com 2014-05-03
  • 打赏
  • 举报
回复
这个要看工具函数与这个类有没有关系了
神-气 2014-04-28
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
某个名字空间下的 全局函数。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧