为什么链接构造函数时以下内容不起作用:
#include <iostream>
#include <vector>
class cls {
public:
cls() {cls(5);} // want to resize v to 5
cls(int n) {v.resize(n);}
std::vector<int> v;
};
int main(int argc, const char* argv[]) {
cls x, y(5);
std::cout << x.v.size() << std::endl; // prints 0 <- expected 5
std::cout << y.v.size(); // prints 5
return 0;
}
演示:http: //ideone.com/30UBzS
我预计这两个对象v
的大小都是 5。怎么了?
我想这样做的原因是因为单独编写cls()
和cls(n)
ctor 会重复很多代码。