程序1:
#include <iostream>
using namespace std;
class Student
{
private:
float english,computer;
public:
float average;
float Getaverage()
{ average=(english+computer)/2;return average; }
void set(float _english,float _computer){english=_english;
computer=_computer;}
Student(float getenglish,float getcomputer)
{
english=getenglish;
computer=getcomputer;
}
};
int main()
{
Student student(86,76);
cout<<student.average<<endl;
system("pause");
return 0;
}
程序1的结果:
-1.07374e+008
请按任意键继续. . .
上面那段程序最后输出-1.07374e+008,一般系统默认值就是这,出现这问题主要是Student类中Getaverage函数average与公有成员average有效范围
程序2:
#include <iostream>
using namespace std;
class Student
{
private:
float english,computer;
public:
float average;
float Getaverage()
{ average=(english+computer)/2;return average; }
void set(float _english,float _computer){english=_english;
computer=_computer;}
Student(float getenglish,float getcomputer)
{
english=getenglish;
computer=getcomputer;
}
};
int main()
{
float c1;
Student student(86,76);
c1=student.Getaverage();
cout<<student.average<<endl;
cout<<c1;
system("pause");
return 0;
}
程序2的运行结果:
81
81请按任意键继续. . .
程序3:
#include <iostream>
using namespace std;
class Student
{
private:
float english,computer;
public:
float average;
float Getaverage()
{ return (english+computer)/2; }
void set(float _english,float _computer){english=_english;
computer=_computer;}
Student(float getenglish,float getcomputer)
{
english=getenglish;
computer=getcomputer;
}
};
int main()
{
Student student(86,76);
cout<<student.Getaverage()<<endl;
system("pause");
return 0;
}
程序3的运行结果:
81
请按任意键继续. . .
程序1的结果是随机数,程序2和程序3的结果正确 ,一开始我总没想明白,为什么呢?
后来,突然发现程序1那样写的话求平均数的函数根本没调用,没用怎么会有结果呢,因此输出了个随机数。