struct object {
string sent ;
...// other data declaration
struct nested {
void read ( void ) ;
};
};
在读取功能中,如何填写发送?换句话说,我该如何调用发送
编辑:
我知道这是一个微不足道的问题,但我不太了解嵌套结构,你能不能给任何网站推荐
答案 0 :(得分:5)
嵌套类只需要一个指向封闭类的指针或引用。这可以通过嵌套类的构造函数传递。
struct nested
{
nested(object& obj) : m_obj(obj) { }
object& m_obj;
};
然后,您可以通过object::sent
参考变量访问m_obj
。
答案 1 :(得分:2)
您需要对结构进行一些更改:
struct object {
std::string sent ;
struct nested {
void read ( object& obj ) { obj.sent = "FOO"; }
} bar;
};
首先,如果read
函数是非静态的,那么nested
中需要object
的实例(或者在外面,我懒得把它放在里面),然后你需要将object
的实例传递给该函数..然后您可以调用
object foo;
foo.bar.read(foo); // this will set it
编辑:如果nested
中有多个访问object
的函数,则在object
的ctor中,自行构建bar
(*this
),就像查尔斯在答案中所说,nested
引用了“父实例”。