我的代码:
Scene::Scene(const std::string &scene_file) : ambient_light(0, 0, 0), background(0, 0, 0){
scene_parser parser(*this);
parser.parse(scene_file);
}
scene_parser 是Scene 的 friend ,在parse 方法中它访问(r/w) Scene 的成员。这会导致任何问题吗?
最佳答案
是的,给出对this
的引用是可以的。但是,您通常希望在其他对象稍后使用该指针时执行此操作。您的用例看起来会在构造函数完成之前立即使用 Scene
,这是一个非常滑的斜坡。
现在,您在调用 parse
后没有建立任何不变量,所以它应该没问题,但它也很脆弱,很容易在未来的更改中引入破坏。
关于c++ - 'giving out' 是构造函数中对 'this' 的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141322/