【发布时间】:2013-05-21 06:51:35
【问题描述】:
如果将参数传递给构造函数,我有一个类有时需要使用deque<int> 类型的成员,如果不是,则不会使用该成员。什么是有效和风格化地处理这种情况的最佳方法?
我还想提一下,这个类的对象应该能够传递给同一个函数,尽管删除在同一个容器中存储的能力很好。我从未做过多态性(正如 cmets 中所暗示的那样),但我想我会阅读并尝试一下。
我的两个想法:
- 将成员变量保留为deque<int>,我假设它将存储为空的deque<int>。
- 使用指向deque<int> 的指针,仅在需要时调用new。
【问题讨论】:
-
除非您制作大量这些,否则请保持简单。在有需求之前不要优化。确保代码有效且易于理解是最重要的。也就是说,自己制作,不需要就不要使用。
-
我明白你的意思,但这是一个简单的类,在我正在编写的其他类中可能被创建了数千万次。
-
我也喜欢漂亮的代码:)
-
首先找到
sizeof(std::deque<int>),然后查看优化后生成的程序集,以构造和销毁一个空的deque。你可能会感到惊讶。 -
嗯。 “如果将参数传递给构造函数”...如果您在创建每个对象时知道该对象是否需要
deque,这可能是多态性的工作。