C++ 从嵌套列表的成员,如何调用外部数据
在read函数中,如何填写sent?换句话说,如何调用sent 编辑:C++ 从嵌套列表的成员,如何调用外部数据,c++,C++,在read函数中,如何填写sent?换句话说,如何调用sent 编辑: 我知道这是一个无关紧要的问题,但我对嵌套结构知之甚少,您能给出任何网站建议吗?嵌套类只需要一个指向封闭类的指针或引用。这可以通过嵌套类的构造函数传入 struct object { string sent ; ...// other data declaration struct nested { void read ( void ) ; }; };
我知道这是一个无关紧要的问题,但我对嵌套结构知之甚少,您能给出任何网站建议吗?嵌套类只需要一个指向封闭类的指针或引用。这可以通过嵌套类的构造函数传入
struct object {
string sent ;
...// other data declaration
struct nested {
void read ( void ) ;
};
};
然后,您可以通过
m_obj
参考变量访问object::sent
。您需要对结构进行一些更改:
struct nested
{
nested(object& obj) : m_obj(obj) { }
object& m_obj;
};
首先,假设read
函数是非静态的,您需要在object
中嵌套的一个实例(或者在外部,我把它放在内部),然后您需要将object
的一个实例传递给该函数。。然后你可以打电话
struct object {
std::string sent ;
struct nested {
void read ( object& obj ) { obj.sent = "FOO"; }
} bar;
};
编辑:如果在nested
中有多个函数访问对象
,则在对象
的构造函数中,使用自身构造条(*此
),以便像Charles在回答中所说的那样,nested
具有对“父实例”的引用
object foo;
foo.bar.read(foo); // this will set it