【发布时间】:2013-02-01 17:05:49
【问题描述】:
我有这样一段代码:
template <class T>
struct Rgb
{
T *r, *g, *b;
Rgb(int nr, int ng, int nb)
{
r = new T(nr);
g = new T(ng);
b = new T(nb);
}
Rgb(int n)
{
Rgb(n, n, n);
}
~Rgb()
{
delete r;
delete g;
delete b;
}
};
我已经这样做了,因为我希望能够创建像这样的对象:
Rgb<std::vector<int>> a(10); // so it creates 3 vectors inside,
// each with 10 elements or
Rgb<std::deque<double>> a(2, 5, 4); // so it creates 3 deques inside
// with different sizes
但是我上面给出的实现不起作用。请帮助我...谢谢...
【问题讨论】:
-
一,你没有遵循三原则。二,你到底为什么有指针?只需存储对象。
-
“不起作用”是一个糟糕的描述。 如何它不起作用?
-
你必须在这里添加编译器说什么或有什么问题