主题:求助。。急
#include <iostream>
#include <list>
#include <string>
using namespace std;
class Student
{
string name;
string num;
int age;
public:
Student(string nam,string nu,int a)
{
name=nam;
num=nu;
age=a;
}
void print()
{
cout<<"Stu:"<<"name"<<name<<" "<<"num"<<num<<" "<<"age"<<age<<endl;
}
// Student_1.push(Student *stu)
};
class Teacher
{
string name;
double sage;
public:
Teacher(string nam,double sa)
{
name=nam;
sage=sa;
}
void print()
{
cout<<"Teacher:"<<"name"<<name<<" "<<"sage"<<sage<<endl;
}
};
template <class T>
void print_1(T&q)
{
T::iterator it;
for(it=q.begin();it!=q.end();it++)
{
it->print();
}
cout<<endl;
}
int main()
{
list<Student>Student_1;
list<Teacher>Teacher_1;
int i,j,ch,age;
string name,num;
double sage;
cin>>i;//²Ù×÷×ÜÊý
for(j=0;j<i;j++)
{
cin>>ch;
switch(ch)
{
case 1:
cin>>name>>num>>age;
Student *stu;
stu=new Student(name,num,age);
Student_1.push_back(*stu);
delete stu;
break;
case 2:
cin>>name>>sage;
Teacher *tea;
tea=new Teacher (name,sage);
Teacher_1.push_back(*tea);
delete tea;
break;
case 3:
if(!Student_1.empty())
cout<<"stuStack is empty!"<<endl;
else
print_1(Student_1);
break;
case 4:
if(Teacher_1.empty())
cout<<"tckStack is empty!"<<endl;
else
print_1(Teacher_1);
break;
default:
cout<<"Input error !"<<endl;
}
}
//cout << "Hello world!" << endl;
return 0;
}
我用的 CODE Blocks 做的 出现错误 就是在print_1函数里面 定义迭代器 出现错误
#include <list>
#include <string>
using namespace std;
class Student
{
string name;
string num;
int age;
public:
Student(string nam,string nu,int a)
{
name=nam;
num=nu;
age=a;
}
void print()
{
cout<<"Stu:"<<"name"<<name<<" "<<"num"<<num<<" "<<"age"<<age<<endl;
}
// Student_1.push(Student *stu)
};
class Teacher
{
string name;
double sage;
public:
Teacher(string nam,double sa)
{
name=nam;
sage=sa;
}
void print()
{
cout<<"Teacher:"<<"name"<<name<<" "<<"sage"<<sage<<endl;
}
};
template <class T>
void print_1(T&q)
{
T::iterator it;
for(it=q.begin();it!=q.end();it++)
{
it->print();
}
cout<<endl;
}
int main()
{
list<Student>Student_1;
list<Teacher>Teacher_1;
int i,j,ch,age;
string name,num;
double sage;
cin>>i;//²Ù×÷×ÜÊý
for(j=0;j<i;j++)
{
cin>>ch;
switch(ch)
{
case 1:
cin>>name>>num>>age;
Student *stu;
stu=new Student(name,num,age);
Student_1.push_back(*stu);
delete stu;
break;
case 2:
cin>>name>>sage;
Teacher *tea;
tea=new Teacher (name,sage);
Teacher_1.push_back(*tea);
delete tea;
break;
case 3:
if(!Student_1.empty())
cout<<"stuStack is empty!"<<endl;
else
print_1(Student_1);
break;
case 4:
if(Teacher_1.empty())
cout<<"tckStack is empty!"<<endl;
else
print_1(Teacher_1);
break;
default:
cout<<"Input error !"<<endl;
}
}
//cout << "Hello world!" << endl;
return 0;
}
我用的 CODE Blocks 做的 出现错误 就是在print_1函数里面 定义迭代器 出现错误