建立一个数组内放五个学生的数据(学号和成绩)。对象数组和对象指针

实现功能1:输出1,3,5的成员数据
实现功能2:用指向对象的指针做函数参数,找出其中成绩最高者的学号并输出
不过我想说的主要是主函数中的代码片段,关于指针如何调用类函数。

int main()
{
	Student s[5]={Student("123",70.1),Student("456",60.2),Student("789",80.5),Student("987",90.6),Student("321",60.1)};
	Student *p=s;//这里没用取地址符的原因是数组名字就是数组首地址
	//s[5].display(p);方法一
	//s[5].max(p);
	//p->display(p);方法二
	//p->max(p);
	p[5].display(p);//方法三
	p[5].max(p);
	return 0;
}

以上示例均可调用类函数,但在通过指针调用类函数的两种方法中又有一些不同。当我们用“.”调用时,一定要记着后面的数组[n],但通过->调用时可以不加[n],可以直接指向。
全部代码:

#include <iostream>
#include <string>
using namespace std;
class Student{
	private:
		string number;
		double score;
	public:
		Student(string n,double s)
		{
			number=n;
			score=s;
		}
		void display(Student *p)
		{

			for(int i=0;i<5;i++)
				if(i%2==0)
				{
					cout<<"学号:"<<p[i].number<<" "<<"成绩:"<<p[i].score<<endl;
				}
		}
		void max(Student *p)
		{
			double max_score;
			string max_number;
			for(int i=0;i<4;i++)
				if(p[i].score>p[i+1].score)
				{
					max_score=p[i].score;
					max_number=p[i].number;
				}
			cout<<"最大学号:"<<max_number<<" "<<"最大成绩:"<<max_score<<endl;
		}
};
int main()
{
	Student s[5]={Student("123",70.1),Student("456",60.2),Student("789",80.5),Student("987",90.6),Student("321",60.1)};
	Student *p=s;
	//p->display(p);
	//p->max(p);
	p[5].display(p);
	p[5].max(p);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值