如何在struct中的struct中设置/获取值

时间:2014-03-19 11:26:48

标签: c++ struct

如何访问我的结构来获取/设置其中的值? 这是我的示例代码

#include <iostream>
using namespace std;
typedef struct t_TES
{
    double dTes;
}TES;

struct SAMPLE1
{
    struct TES;
};

int main()
{
    SAMPLE1 sss;
    //How can i get/set dtes value??
    sss.TES.dtes=10;
    cout<<sss.TES.dtes<<endl;
    return 0;
}

是否可以像这样分配值&#34; sss.TES.dtes = 10&#34 ;; 并通过调用这个&#34; sss.TES.dtes&#34 ;;来获得价值。 我已经尝试将两者结合起来 - &gt;或::运算符来获取/设置值,但总是遇到编译错误。

请原谅我的英语不好,谢谢..

3 个答案:

答案 0 :(得分:3)

对于实例,

C ++中的结构不需要typedefstruct关键字,但它们确实需要其成员的名称。此外,它是一种区分大小写的语言,因此dtesdTes不同。尝试:

#include <iostream>
using namespace std;

struct TES
{
    double dTes;
};

struct SAMPLE1
{
    TES tes;
};

int main()
{
    SAMPLE1 sss;
    sss.tes.dTes = 10;
    cout << sss.tes.dTes << endl;
    return 0;
}

答案 1 :(得分:1)

SAMPLE1结构存在两个问题:第一个是当struct TES实际上不是结构时使用TES(它是别名的一个结构)。第二个问题是你必须在SAMPLE1结构中声明一个成员:

struct SAMPLE1
{
    t_TES tes;
};

然后你只需嵌套使用点运算符.(就像你现在一样):

SAMPLE1 sss;
sss.tes.dTes = 0.0;

答案 2 :(得分:1)

你做不到。使用struct TES;,您不会声明成员变量。尝试例如TES member_name,然后您可以在主版中使用sss.member_name访问它。此外,您应该尝试使用更具描述性的变量名称; - )