【发布时间】:2026-01-11 16:15:01
【问题描述】:
我有一个函数,它采用不同类型的不同变量,并根据类型对变量进行计算。
c++ 中的类/结构是否可以将所有公共变量传递给函数?
类似这样的:
class some_vars {
int a=3;
double b=5.0;
std::string str="thanks for help";
};
void f(some_vars.commaseparatedvariables);
some_vars.commaseparatedvariables 将是:some_vars.a,some_vars.b,some_vars.str
edit 我不想枚举类。我只想将类的所有公共可用变量传递给函数。
edit2 该函数可以处理传递给它的不同类型的可变数量的变量。所以对我来说,传递类变量是很自然的,当需要更改时,我只需要更改它们,而不必在函数中再次更改它们。 (希望这能解决问题。)
【问题讨论】:
-
为什么要这样做?您可以传递对
some_vars的引用并按名称获取每个成员。 -
为什么不通过引用传递?
void f(some_vars &); -
我不想在函数中重新重写每个变量名。
-
很确定你是这个的 SOL。有什么理由不让
f成为 some_vars 的方法? -
这会改变问题吗?你有解决方案吗?
标签: c++ class parameter-passing