我有这样的课
//Header file
class MyClass{
public:
MyClass(int value);
void doSomething(MyClass2 element);
private:
std::vector<MyClass2> v1;
int value;
}
//cpp file
MyClass::MyClass(int value):value(value), v1(std::vector<MyClass2>()){
}
void MyClass::doSomething(MyClass2 element){
std::cout << "Size of v1 is " << this->v1.size() << std::endl;
this->v1.push_back(element);
std::cout << "Size of v1 is " << this->v1.size() << std::endl;
}
我用以下方法调用doSomething方法:
int main(){
MyClass myClass(0);
MyClass2 myClass2("name");
myClass.doSomething(myClass2);
return 0;
}
这段代码向我输出的第一个cout大小不一致(4237020018),并在push_back方法调用中崩溃。我知道这可能是一个简单的问题,但是我从c ++开始,我真的不明白这里发生了什么。