指针对象(类和对象实验二)
题目描述
在前面章节内容里已经学习了数组和指针之间的关系,现在对象数组练习题的基础上,把对象数组改为对象指针重新实现同一功能,看看使用对象指针与普通类型指针有何不同?比如要构造三个学生类对象,只能使用指针动态分配方法实现(new 指令),最后,我们对初始化后的n个对象中的姓名字段属性按升序排序,输出排序后的各对象姓名属性,特别要注意的是对对象指针初始化需要注意什么(提示:可以在类外面定义一个方法,该方法的参数是对象指针/数组,对传入的对象按要求进行排序输出)。
输入
第一行输入需要n个测试对象
每行依次输入各对象的属性
输出
输出排好序后的对象姓名属性,每行一个
样例输入
2
Tom 男 2012222222 计算机学院 13333333333
John 男 2013333333 计算机学院 12444444444
样例输出
John
Tom
【my code】
#include <iostream>
using namespace std;
class Stu{
private:
string name, id, sex, col, tel;
public:
Stu(){}
Stu(string n, string d, string s, string c, string t)
:name(n), id(d), sex(s),col(c), tel(t) {}
void input(string n, string d, string s, string c, string t) {
name = n;
id = d;
sex = s;
col = c;
tel = t;
}
string getName() {
return name;
}
void show() {
cout << name << endl;
}
};
void sort(Stu *a, int n) {
int i, j;
for(i = 0; i < n; i++) {
for(j = i + 1; j < n; j++) {
if(a[i].getName() > a[i+1].getName()) {
Stu temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
int main() {
int t;
cin >> t;
Stu *stu = new Stu[t];
for(int i = 0; i < t; i++) {
string name, id, sex, col, tel;
cin >> name >> id >> sex >> col >> tel;
stu[i].input(name, id, sex, col, tel);
}
sort(stu, t);
for(int i = 0; i < t; i++) {
stu[i].show();
}
return 0;
}