c++ - 是否可以将某些函数参数设为对象外部私有但内部可访问?
问题描述
我不知道你是否必须为同一个任务使用不同的函数,但是否可以在 c++ 中做类似的事情,但是以另一种方式?
void foo(int n , private Bar *bar) {}
我打算将递归函数编码到一个对象中,但不希望在对象之外可以访问某些参数。
解决方案
你可以这样做:
struct Moo {
static void foo(int n);
private:
static void foo(int n,Bar* bar);
};
我不喜欢只有静态方法的类(原因超出了这个问题的范围),但这是最简单的得到你想要的东西。foo(int)
是公共的,另一个重载是私有的(并且只能从 调用foo(int)
)。
或者,代替Bar
参数,制作foo
成员Bar
并使用私有成员代替参数:
struct Bar {
void foo(int n);
private:
// state, ie anything that you would have passed as argument to foo
};
推荐阅读
- flutter - URL 的目标不存在:'import 'package:velocity_x/velocity_x.dart';
- mysql - 如何用 MySQL 替换 » “直角引号”
- python - 无法捕获 Git 命令完整输出流
- typescript - 打字稿:理解`
` - pandas - 对于pandas数据集中的模型,添加新特征时可以使用目标列吗?
- json - 通过spark读取漂亮的json格式数据
- apache -
子句因 RewriteRule 失败 - css - 悬停和键入时输入文本消失
- string - Dart tryParse double vs string of double
- angular - 用于删除项目的角度单元测试