c++中有时候类中的成员函数过长,那么此时在类内定义成员函数就不利于程序的阅读了,此时我们大都会将是函数定义在类外。
c++中规定,在类外定义成员函数时要用类名和作用域运算符进行限定。
如程序:
#include<iostream>
using namespace std;
class Student
{
public :
void show(); //在类内声明成员函数show()
void record(string n,string stunum,string s)
{
name=n;
studentnumber=stunum;
sex=s;
}
private:
string name;
string studentnumber;
string sex;
};
void Student::show() //在类外定义函数时要加上类名和作用域运算符
{
cout<<"name:"<<name<<endl;
cout<<"studentnumber:"<<studentnumber<<endl;
cout<<"sex:"<<sex<<endl;
}
int main()
{
Student student;
student.record("wang","123456","nan");
student.show();
return 0;
}
注意:
1.函数在类内定义和在类外定义效果是一样的,只是对于较长的程序函数放在类外更有利于读程序;
2.在类外定义成员函数时必须现在类内写出成员函数的原型声明,然后再在类外定义;
3.如果在类外有定义,但是在函数名前没有类名和作用域运算符,则该函数被认为是普通函数;
4.在类内声明成员函数,在类外定义成员函数,是软件工程中良好的编程风格