gpt4 book ai didi

c++ - 作为对象的类成员 - 指针与否? C++

转载 作者:IT老高 更新时间:2023-10-28 12:29:39 26 4
gpt4 key购买 nike

如果我创建了一个类 MyClass 并且它有一些私有(private)成员说 MyOtherClass,是否将 MyOtherClass 设为指针更好?就它在内存中的存储位置而言,将它作为不是指针意味着什么?创建类的时候会创建对象吗?

我注意到 QT 中的示例通常在类成员为类时将类成员声明为指针。

最佳答案

If I create a class MyClass and it has some private member say MyOtherClass, is it better to make MyOtherClass a pointer or not?

你通常应该在你的类中将它声明为一个值。它将是本地的,出错的机会更少,分配更少 - 最终可能出错的事情更少,并且编译器总是可以知道它在指定的偏移量处,所以......它有助于优化和二进制减少几个级别。在某些情况下,您知道必须处理指针(即多态、共享、需要重新分配),通常最好仅在必要时使用指针 - 尤其是当它是私有(private)/封装时。

What does it mean also to have it as not a pointer in terms of where it is stored in memory?

它的地址将接近(或等于)this——gcc(例如)有一些高级选项来转储类数据(大小、vtables、偏移量)

Will the object be created when the class is created?

是的 - MyClass 的大小将增加 sizeof(MyOtherClass),或者如果编译器重新对齐它(例如,使其自然对齐)则更多

关于c++ - 作为对象的类成员 - 指针与否? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com