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.在类内声明成员函数,在类外定义成员函数,是软件工程中良好的编程风格
相关文章
- 在JS中定义类(ES5与原型)
- Java类中的静态属性、静态代码块块、非静态属性、非静态代码块块、构造函数在初始化时的执行顺序
- 编写Java应用程序。首先,定义描述学生的类——Student,包括学号(int)、 姓名(String)、年龄(int)等属性;二个方法:Student(int stuNo,String name,int age) 用于对对象的初始化,outPut()用于输出学生信息。其次,再定义一个主类—— TestClass,在主类的main方法中创建多个Student类的对象,使用这些对象来测 试Stud
- C++中基类的析构函数为什么要用virtual虚析构函数
- 在类路径资源中定义了一个名为“数据源”的bean。
- 无法在Swift 1.2中的UITableViewDelegate方法中使用自定义TableViewCell类
- C++类中的数据成员能否在定义类的时候就初始化?
- 派生类中的静态方法可以在C ++中调用受保护的构造函数吗?
- 在PHP中重写父类的构造函数
- 在具有变量名称的模块中定义类方法