【发布时间】:2015-09-17 03:12:43
【问题描述】:
C++ 开发时间长,请大家多多包涵。。 在我的设计中,我有派生类,基类是使用模板传递的。
template <class DeviceType, class SwitchType> class Controller : public SwitchType
{
public:
/* Constructor */
Controller(byte ID, byte NumberOfDevices, int size, int data[]) : SwitchType(size, data)
{
}
};
我是这样使用的:
Controller <ValueDriven, Eth_Driver> ctn(1, 2, 3, new int[3]{2, 3, 8});
这里可以使用省略号吗?所以最终结果会像这样..
Controller<ValueDriven, Eth_Driver> ctn(1, 2, 3, 2, 3, 8);
我尝试了椭圆,但找不到将椭圆从 Controller 传递到 SwitchType 的方法。
注意* 将此用于 arduino 平台。所以远离 std::lib
【问题讨论】:
-
我感觉某处有一些内存泄漏...
-
是的,如果不删除数据,则存在泄漏。
-
你为什么打电话给
new?您在编译时拥有所有信息。 -
SwitchType是如何构造的?您需要将这些值存储在某处,还是立即在构造函数中处理它们? -
每个 Switch 类型都使用数据初始化一些值,最后删除数据。我在想..不同的 SwitchTypes 必须有相似的构造函数,然后用户可以在实例化与此控制器关联的开关时选择。 *关于新的,不知道是否有其他方法可以传递一个常量数组。
标签: c++ inheritance constructor ellipsis