如何显示class的值?
How to display the values of a class?
我几乎是 c++ 的新手。我创建了一个 class 的学生。首先,当我返回标记的媒体时,它不是浮点值。例如:如果我输入 5 和 10,它会 returns 7 而不是 7.5.
其次,当我想用函数disp()显示名称和媒体时,它不起作用。
有人能帮忙吗?
谢谢
#include <iostream>
using namespace std;
class student{
public:
string name;
int mark1, mark2;
float calc_media(){
float media = (mark1 + mark2)/2;
return media;
}
void disp(){
cout << "Student:" << name << endl;
cout << "media:"<< calc_media() << endl;
}
};
int main (){
student peter;
cout <<"name:" ;
cin>>peter.name;
cout <<"mark1:" ;
cin>>peter.mark1;
cout <<"mark2:" ;
cin>>peter.mark2;
cout <<"ALL:" << peter.disp();
return 0;
}
在这个表达式中:
(mark1 + mark2) / 2;
你正在进行整数除法,因为变量和文字都是 int
类型。你可以简单地做:
(mark1 + mark2) / 2.0;
取而代之,进行浮点除法。
要让 disp
工作,请注意它没有 return 任何东西,因此您只需像这样调用它:
peter.disp();
并且不将此函数的结果传递给 cout
。
或者,您可以像这样重载 operator<<
,而不是 disp
:
std::ostream& operator<<(student const &s, std::ostream &out)
{
out << "Student:" << name << endl;
out << "media:"<< calc_media() << endl;
return out;
}
然后像这样使用它:
cout << peter;
这里你做的是整数除法,变量mark1
和mark2
都是整数,2
也是整数。
float calc_media(){
float media = (mark1 + mark2)/2;
尝试用2.0
替换2
来实现浮点除法
float media = (mark1 + mark2)/2.0;
并且由于您的 disp
函数未返回您不需要 cout
的内容。你可以这样做,
cout <<"ALL:";
peter.disp();
我几乎是 c++ 的新手。我创建了一个 class 的学生。首先,当我返回标记的媒体时,它不是浮点值。例如:如果我输入 5 和 10,它会 returns 7 而不是 7.5.
其次,当我想用函数disp()显示名称和媒体时,它不起作用。
有人能帮忙吗?
谢谢
#include <iostream>
using namespace std;
class student{
public:
string name;
int mark1, mark2;
float calc_media(){
float media = (mark1 + mark2)/2;
return media;
}
void disp(){
cout << "Student:" << name << endl;
cout << "media:"<< calc_media() << endl;
}
};
int main (){
student peter;
cout <<"name:" ;
cin>>peter.name;
cout <<"mark1:" ;
cin>>peter.mark1;
cout <<"mark2:" ;
cin>>peter.mark2;
cout <<"ALL:" << peter.disp();
return 0;
}
在这个表达式中:
(mark1 + mark2) / 2;
你正在进行整数除法,因为变量和文字都是 int
类型。你可以简单地做:
(mark1 + mark2) / 2.0;
取而代之,进行浮点除法。
要让 disp
工作,请注意它没有 return 任何东西,因此您只需像这样调用它:
peter.disp();
并且不将此函数的结果传递给 cout
。
或者,您可以像这样重载 operator<<
,而不是 disp
:
std::ostream& operator<<(student const &s, std::ostream &out)
{
out << "Student:" << name << endl;
out << "media:"<< calc_media() << endl;
return out;
}
然后像这样使用它:
cout << peter;
这里你做的是整数除法,变量mark1
和mark2
都是整数,2
也是整数。
float calc_media(){
float media = (mark1 + mark2)/2;
尝试用2.0
替换2
来实现浮点除法
float media = (mark1 + mark2)/2.0;
并且由于您的 disp
函数未返回您不需要 cout
的内容。你可以这样做,
cout <<"ALL:";
peter.disp();