【发布时间】:2013-01-18 08:38:21
【问题描述】:
所以我有一个需要两个字符和两个整数的函数:
void need_2xcha_2xint(char a, char b, int x, int y)
{
cout << "Working! a: " << a << ", b: " << b << ", x : " << x << ", y: " << y << ".\n";
}
我想通过传递一个包含四个值的结构来调用它:
struct Value_Holder
{
char a;
char b;
int x;
int y;
Value_Holder()
: a('g'), b('h'), x(3), y(5)
{
}
};
我希望能够这样称呼它:
Value_Holder vh;
need_2xcha_2xint(vh);
当然,我可以编写另一个函数来接受我的自定义结构并适当地处理它,但我想知道是否有办法告诉结构直接输出四个单独的值。这将主要用于与 DirectX 库交互。
我确信这是基本的东西,但我一直在研究 C++ 的许多不同领域,很难记住所有内容。我已经搜索了一段时间的答案,但我不太确定我应该搜索什么。我的谷歌技能让我失望了!
提前致谢。
- 编辑-
似乎人们对我的问题感到困惑,我将在这里尝试简化它:
有没有办法让一个需要 2 个整数和 2 个字符的函数接受一个保存这些值而不是四个单独值的结构?
我希望这能澄清我的问题。
【问题讨论】:
-
嗯,你为什么不写need2xcha_2xint(vh.a, vh.b, vh.x, vh.y);?
-
“一种告诉结构直接输出四个单独值的方法”——你是什么意思?我不太明白你的问题。
-
认为他希望使用 struct 的函数调用与具有 4 个参数的函数 def 一起使用
-
我认为可以部分回答您的问题:stackoverflow.com/questions/2758937/…
-
我不想写(vh.a vh.b 等...),因为我可能想传递 100 或 200 个值。我认为 Karthik 是我想要的。对不起,如果我无法清楚地解释自己。我认为我的词汇不正确。