gpt4 book ai didi

c++ - 在 C++ 中实现默认值

转载 作者:行者123 更新时间:2023-11-30 03:04:31 24 4
gpt4 key购买 nike

我有一个包含一组属性的类,我希望能够从另一个实例(名为父实例)获取默认值。

如果实例没有父实例,则会为其分配默认值。但是如果实例有一个父对象,那么我希望它将其属性默认为父对象的属性,有限制,如果父对象属性被修改,那么对象属性也可以获得新值。鉴于此限制,我不能简单地从父级复制值。

因此我认为我有两种方法:

  • 使用指针:如果指针为 nullptr,则使用父值。
  • 为每个属性使用一个 bool 字段,指示状态。

两种方法都应该可行,但也有不便之处:

  • 第一个需要手动实例化,即使它可以用 shared_ptr 或 unique_ptr 简化。但这会导致额外的指令,从而导致代码变慢
  • 第二个会导致额外的内存消耗:每个实例每个属性至少多占用一个字节(大部分时间是 2、4 甚至 8 个字节)。

我的问题是:还有其他方法可以实现这种行为吗?或者最好的解决方案是什么?

最佳答案

The second will lead to additional memory consumption : each instance will take at least one more byte (most of time 2, 4 or even 8 bytes) per attribute.

然后使用位域或位掩码为每个属性使用一个位。没有比这更有效的了。

关于c++ - 在 C++ 中实现默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8555644/

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