C++好好玩哦

来源:百度知道 编辑:UC知道 时间:2024/05/28 07:38:39
请解释以下程序错误的地方,谢谢
#include<iostream.h>
class student
{public:
void display();
int num,score;
};
void student::display()
{cout<<"学号:"<<student1.num<<"分数:"<<student1.score<<endl;//我知道这里有问题,请解释一下为什么不能在这个地方引用对象的成员?
}
int main()
{student student1;
student1.num=1;
student1.score=78;
student1.display();
return 0;
}

啊哈 ,开始还没看出来你的问题,经过上机验证后加思考,终于发现这个问题了。
问题出现在你的成员函数:void display();
它的作用是输出“num”和“score”

而不是只输出student1的“num”和“score”

你仔细想下,要是你又定义了student2,那怎么输出student2的“num”和“score”呢?

所以你的起输出作用的成员函数应该这样写:

void display)
{
cout<<"学号:"<<num<<"分数:"<<score<<endl;

}

不用引用,直接用
cout<<"学号:"<<num<<"分数:"<<score<<endl;
它等价于:
cout<<"学号:"<<this.num<<"分数:"<<this.score<<endl;
而this就是你的对象的指针.
请解释一下为什么不能在这个地方引用对象的成员?
那为因为你的display是类内函数.直接调用类内成员.

#include<iostream.h>
class student
{public:
void display();
int num,score;
};
void student::display()
{cout<<"学号:"<<num<<"分数:"<<score<<endl;
}
int main()
{student student1;
student1.num=