stophin 2022-08-25 11:03 采纳率: 37.5%
浏览 24

C++获取类的实际大小使用什么设计模式好?

我有一个类,类中使用了其他类的map或者vector

class MValue {
public:
int iValue;
void* pValue;
double dVlaue;
...
std::vector<int> vValue;
};
class MMaster {
public:
MValue value;
std::map<int, MValue> values;
};

现在我需要将MMaster序列化,首先需要获取MMaster大小(不是sizeof,需要包括map.size())
我想首先获取MValue的大小,然后乘上map.size()

class MValueSize {
public:
static int getSize(MValue& value) {
...
}
};

这样就可以直接使用
getSize(master.value);
获取value的大小
但我感觉这样不是好的设计,希望直接使用
master.value.size()
即可获取value大小,但是又不希望修改原来的MValue类的代码
了解到有装饰器模式,但这个模式好像每次都会拷贝一个MValue值到装饰器里面,这样消耗太大
请问有其他好的设计模式吗?

  • 写回答

1条回答 默认 最新

  • 关注

    那你就在MValue 这个类里面写一个函数获取到当前大小不久行了

    评论

报告相同问题?

问题事件

  • 创建了问题 8月25日