在C++中,将类的接口与其实现分离是很常见的,
接口列出了类及其成员(数据和函数)而实现提供了函数的具体实现
接口通常都是放在.h结尾的文件中。需要接口信息的源代码必须 #include"接口文件"
在一个复杂的项目中可能包含多个文件,这样就存在编译文件时候一个接口被读两次的危险
为了避免这种情况,每一个接口都定义一个预处理器定义一个符号。
#ifndef IntCell_H
#define IntCell_H
class IntCell
{
public:
explicit IntCell(int value=0)
int read() const; //const的作用不能改变成员变量
int write(int value);
private:
int storedValue;
};
#endif // IntCell_H
#define IntCell_H
class IntCell
{
public:
explicit IntCell(int value=0)
int read() const; //const的作用不能改变成员变量
int write(int value);
private:
int storedValue;
};
#endif // IntCell_H
实现文件通常都是以.cpp结尾的。
(1)其中的成员函数必须声明为类的一部分。语法 className::memberfunction 其中::是作用域运算符
(2)实现的成员函数必须和类接口中列出的匹配
(3)默认参数仅在接口初被定义,在实现处被忽略