在几个函数之间拆分任务
Splitting task among several functions
我正在寻找的东西,使我能够做的东西像一个函数中的函数。下面是一个更明显的例子:
class A{
private:
int n;
int c;
public:
void foo();
}
然而foo是一个函数,应该改变c,但需要n。foo
有点复杂所以我想把它分成不同的子函数。由于foo
需要n
,通过朋友函数(不传递n(在我的实际问题中有大量变量)是不简单的
只是把所有这些子函数在同一个类中,并使它们私有?
class A
{
int n;
int c;
void foo_thing_1();
void foo_thing_2();
public:
void foo() { foo_thing_1(); foo_thing_2(); }
};
正如其他答案所指出的那样,简单的私有函数应该足够了——除非您还需要访问原始函数的内部变量——这在c++11中是不可能的。在即将到来的c++0x中,你可能想看看lambda函数——尽管我确信这不是它们的本意。
相关文章:
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 填充上编译器生成的复制构造函数之间的不一致
- 为什么不允许成员函数和非成员函数之间的函数重载?
- 如何在"push_*()"和"emplace_*()"函数之间进行选择?
- 仅具有运算符()的结构和普通函数之间的实际区别
- 当两者都调用时,删除和析构函数之间的区别?
- Release() 和析构函数之间的区别?
- 调用 "project" 函数和调用 DLL 函数之间的区别
- C++模板和非模板函数之间的重载解析
- std::shared_ptr 和 std::unique_ptr 构造函数之间的不对称
- C++ 和 Lua 函数之间的交互与 3D 矢量参数
- 在结构函数之间传递文件路径 C++ 编辑:修复LNK2019错误
- 在C++同名的顶级函数之间进行选择
- 在成员函数之间传递const变量为数组的索引
- Helgrind 报告了使用 Singleton 及其构造函数之间可能存在的竞争
- 函数模板和函数之间奇怪的不一致"normal"
- 在c#和c函数之间传递值和指针
- 在C++中调用 malloc() 与"operator new"函数之间的实现差异
- 在函数之间传递相同的数组
- C++编译错误是由于使用 std::move 时运动构造函数与其他非运动构造函数之间的冲突