请采取以下措施:
A a; class B; // No content for brevity class A { public: A() { b.SetTitle("hi"); } private: B b; } int main() { return 0; }
这里的问题是,在A中声明的b是在堆上还是在堆栈上声明的.
问题:
这就是我最初的做法,但我认为我有点愚蠢,因为我不得不一直宣称一切都是新的…如果上面是堆栈,我想这不是那么愚蠢吧?
A a; class B; // No content for brevity class A { public: A() { this->b( new B() ); // I don't have C++ 14 :( so i can't do make_unique b->SetTitle("hi"); } private: unique_ptr<B> b; } int main() { return 0; }
解决方法
原文地址:https://www.jb51.cc/c/118488.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。