如何编写类外函数的代码? C++
Posted
技术标签:
【中文标题】如何编写类外函数的代码? C++【英文标题】:How to write the code of a function outside the class? c++ 【发布时间】:2020-05-24 09:14:32 【问题描述】:我是 C++ 新手,我正在学习类和对象。在类中,我定义了一个函数,我想将它的代码写出类。 我觉得应该是这样的:
#include <iostream>
using namespace std;
class student
public:
string name;
int mark1, mark2;
float calc_media(int, int);
void disp()
cout << "Student:" << name << endl;
cout << "Media:"<< calc_media(int, int) << endl;
;
student::float calc_media(int x, int y)
float media = (x + y)/2.0;
return media;
int main ()
student peter;
cout <<"name:" ;
cin>>peter.name;
cout <<"mark1:" ;
cin>>peter.mark1;
cout <<"mark2:" ;
cin>>peter.mark2;
cout <<"media:" << peter.calc_media(peter.mark1, peter.mark2) << endl << endl;
peter.disp();
return 0;
任何人都可以帮助我,因为它不起作用。它显示了这些错误:
expected primary expression before 'int'
在第 13 行,expected unqualified-id before 'float'
在第 19 行。
【问题讨论】:
【参考方案1】:return_type class_name::member_function_name(parameters)
//action
在你的情况下:
float student::calc_media(int x, int y)
float media = (x + y)/2.0;
return media;
在你的课堂上改变这个
cout << "Media:"<< calc_media(int, int) << endl;
到
cout << "Media:"<< calc_media(mark1, mark2) << endl;
【讨论】:
【参考方案2】:您的示例中有两个简单的拼写错误。
cout << "Media:"<< calc_media(int, int) << endl;
您必须在此处传递两个值而不是类型。所以你可以写
cout << "Media:"<< calc_media(2, 2) << endl;
这就是编译器拒绝这个程序的原因。 除此之外,您的代码中还有另一个错字会在修复第一个错字后遇到:
student::float calc_media(int x, int y)
float media = (x + y)/2.0;
return media;
这也是笔误应该是
float student::calc_media(int x, int y)
float media = (x + y)/2.0;
return media;
【讨论】:
以上是关于如何编写类外函数的代码? C++的主要内容,如果未能解决你的问题,请参考以下文章