我有一个构造函数的问题,它不像我所期望的那样工作。构造函数不返回可用对象
如果我尝试初始化我的课一样,它会工作,我得到一个可用的对象:
vector<float> v;
MyClass<2> a(v);
但是,如果我尝试建立类似下面的一类(这应该是等同)的结果是非常意外的。编译或运行程序时没有错误消息/警告。但是如果你试图在某个地方使用这个变量并调用它的方法(例如a.doSomething()),它会崩溃。
我在构造函数里面放了一些代码来通知我它是否被使用。事实证明,在这种情况下,构造器中没有实际执行代码。
MyClass<2> a(vector<float>());
所以我想知道为什么会发生这种情况?第二个声明是非法的吗?
编辑:我会发布一些类的代码
template <int x>
class MyClass {
public:
vector<float> v;
MyClass<x>(vector<float> v1) {
v = v1;
}
};
The clas s有一个相同类型的公共变量。所以它只会将参数分配给变量。 – dominos 2011-03-19 17:57:59
发布MyClass的一些代码! – Nawaz 2011-03-19 17:59:16
我发布了一些类的代码。它不是一个引用或指针,只是一个变量。 – dominos 2011-03-19 18:04:30