我遇到了使用STL库的问题。我附上了代码片段。使用STL时出现分段错误
// Store a class object in a vector.
#include <iostream>
#include <vector>
using namespace std;
class Parent{
int id;
public:
Parent(){};
Parent(int x){ id=x;}
virtual ~Parent(){ cout<<"Parent"<<endl;}
virtual void print3(){cout<<"Printing Parent "<<id;}
};
class Child:public Parent{
int c;
public:
Child(int m,int n):Parent(m){
c=n;
}
Child(){c=0;}
virtual ~Child(){ cout<<"Child"<<endl;}
virtual void print3(){cout<<"Printing Child "<<c;}
};
class New_class
{
public:
New_class(){
tp=new Child(10,20);
}
~New_class(){
delete tp;
}
void check(Parent &tmp){
tmp.print3();
}
void print2(){tp->print3();}
private:
Parent *tp;
};
class New2{
vector<New_class> tp2;
public:
New2(){
tp2.push_back(New_class());
}
~New2(){
tp2.clear();
}
void print(){ vector<New_class>::iterator it=tp2.begin(); (*it).print2();}
};
int main()
{
New2 m ;
m.print();
}
在此先感谢。 Regards
你有什么问题? –
只是违反三规则:http://stackoverflow.com/questions/4172722/what-is-the-rule-of-reeree – UncleBens
@Dean:'New_class' –