我有一个 .hpp 和 .cpp 文件。我想访问类中结构中的变量,该变量恰好位于 .cpp 文件的头文件 .hpp 中。
在.hpp中,我有
class foo{
public:
struct packet{
int x;
u_int y;
};
};
foo(const char*name)
:m_name(name){}
在 .cpp 中我做了:
foo *foo_1 = &foo;
printf("The value of x is : %d",foo_1->packet.x);
printf ("The value of y is : %u", foo_1->packet.y);
执行此操作时,我收到以下错误:
code_1.cpp:117: error: expected primary-expression before ‘;’ token
code_1.cpp:118: error: invalid use of ‘struct foo::packet’
code_1.cpp:119: error: invalid use of ‘struct foo::packet’
make: *** [code_1] Error 1
我的目标是获取 cpp 文件中 x 和 y 的值。任何建议/想法将不胜感激。
Thanks.
你需要一个成员对象类型的foo::packet
in class foo
.
class foo{
public:
struct packet{
int x;
u_int y;
};
packet my_packet; // <- THIS
};
在你的 .cpp 中,你应该这样做:
foo *foo_1 = &foo;
printf("The value of x is : %d",foo_1->my_packet.x);
printf ("The value of y is : %u", foo_1->my_packet.y);
你必须记住,即使packet
在里面foo
,它不包含在foo
作为成员对象。它只是一个包含在另一个类中的类。对于要使用的类,您必须拥有它的对象(类也可以在没有它的对象的情况下使用,但是,好吧......)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)