按值进行结构引用 - 我可以通过编程方式获取结构的成员

时间:2018-02-22 04:04:08

标签: c++ struct reference

我有一些代码(现在只是一个示例位):

#include <iostream>
using namespace std;
string(the_value) = "three";
string(a) = "";

struct Speeds
{
    int s1;
    int s2;
    int s_t;
};

int return_values(Speeds byval) {
    std::cout << "speed1:   " << byval.s1 << "\n";
    std::cout << "speed2:  " << byval.s2 << "\n";
    std::cout << "time: " << byval.s_t << "\n";
    return(1);
}

int main() 
{
    Speeds one = { 255, 200, 1000 };
    Speeds two = { 128, 128, 1000 };
    Speeds three = { 0, 255, 1000 };
    a = the_value;
    cout << "Displaying Information," << endl;

    // Here is the issue at hand:

    // this works and compiles:
    return_values(three);

    // this doesn't:
    return_values(a);
}

正如您在代码和注释中看到的那样 - 一种方法可行,一种方法无效。因此,基础问题变为 - 如果结构速度的成员ID不是字符串:

1)它是什么?

2)可以通过字符串以外的变量类型引用吗?

如果#2为no,那么我将如何使用另一个字典类型对象完成相同的操作?

我是c +的新手,在我去的时候自学,我很确定我在某个地方看到了一个埋藏在另一个问题中的这种(有点)的引用,但我再也找不到了。这段代码是一个POC,本质上是一个较大的项目的一部分,我需要存储有限数量的struct元素,但是通过值以编程方式检索它们,而不是直接通过函数调用中的“命名”每个元素。

(另外,我知道我可能不需要声明“the_value”,然后将其转换为另一个变量“a”。它是我试过的其他东西遗留下来的,并且因为“string”不相关而无关紧要无论如何工作。)

0 个答案:

没有答案