k*****y 发帖数: 744 | 1 void TestFunc(){
class MyClass{
public:
Myclass(int){};
...
};
vector data;
data.push_back(MyClass(10));
...
};
这样写的话,好像copy constructor不能把10拷到data[0]去。
class MyClass{
public:
Myclass(int){};
...
};
void TestFunc(){
vector data;
data.push_back(MyClass(10));
...
};
如果把MyClass定义到全局,就能把10拷到data[0]去了。
请问这是什么原因?用的是VS2010。谢谢~ | t****t 发帖数: 6806 | 2 第一你constructor拼写错了.
第二, local class不能当template parameter. c++11放宽了限制, 但是我不知道
VS2010支持多少. g++ 4.5以上支持这个特性.
【在 k*****y 的大作中提到】 : void TestFunc(){ : class MyClass{ : public: : Myclass(int){}; : ... : }; : vector data; : data.push_back(MyClass(10)); : ... : };
| k*****y 发帖数: 744 | 3 第一个是typo,我贴上来前把名字改了一下。
Thanks。
【在 t****t 的大作中提到】 : 第一你constructor拼写错了. : 第二, local class不能当template parameter. c++11放宽了限制, 但是我不知道 : VS2010支持多少. g++ 4.5以上支持这个特性.
|
|