标题:C++指针问题
只看楼主
Dream_LX
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-6-6
结帖率:100%
 问题点数:0 回复次数:1 
C++指针问题
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
class Student
{
public:
    Student(string n,int nu,int s)
    {
        name=n;
        number=nu;
        score=s;
    }
    string name;
    int number;
    int score;
    void out();
    friend void Max(Student *,Student *);
};

void Student::out()
{
    cout<<setw(8)<<name<<setw(8)<<number<<setw(8)<<score<<endl;
}

void Max(Student *p,Student *pm)
{
    for(int i=0;i<5;i++)
    {
        if((*(p+i)).score>(*pm).score)
        {
            *pm=*(p+i);
        }
    }
}


int main()
{
    Student Stud[5]={Student("LX",01,01),Student("LD",02,02),Student("GD",03,03),Student("PX",04,04),Student("SYL",05,05)};
    Student *p1=&Stud[0];
    Student *p2=&Stud[1];
    Student *p3=&Stud[2];
    Student *p4=&Stud[3];
    Student *p5=&Stud[4];
    cout<<setw(8)<<"name"<<setw(8)<<"number"<<setw(8)<<"score"<<endl;
    (*p1).out();
    (*p2).out();
    (*p3).out();
    (*p4).out();
    (*p5).out();
    Student *p=&Stud[0];
    Student *pm=("Max",0,0);
    Max(p,pm);
    (*pm).out();
    return 0;
}

编译没错误,运行报错,是为什么?
搜索更多相关主题的帖子: void include public number friend 
2012-06-15 14:24
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
得分:0 
    Student *pm=("Max",0,0);
    Max(p,pm);
    (*pm).out();
改为
    Student pm("Max",0,0);
    Max(p,&pm);
    pm.out();

 

努力改变一点点!!
2012-06-15 16:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-371585-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.101763 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved