如何定义一个类:
在C++中,struct和class都可以用来定义类
class 类名
{
类的成员:成员函数和成员变量
};
如果将类的成员函数声明和定义都放在类中来实现
缺陷:
1.可能导致编译器将次成员函数当成内联函数来处理
2.如果将声明和定义都放在类中实现的类类型放在头文件中,当头文件在多个源文件中包含时,就会产生重复定义导致编译失败
改正措施:
将类的声明和定义分离开来,头文件中类中的成员函数仅仅放置声明,成员函数的定义放在源文件中
注意:成员函数在类外定义时,成员函数名前必须要加类名::(作用域限定符)以此来告诉编译器此函数是类的成员函数,否则编译器会将此函数当作全局函数来定义
类的访问权限:
private(私有的):该访问权限限定符修饰的成员,不能直接在类外被访问
protected(保护的):该访问限定符修饰的成员,不能直接在类外被访问
public(公开的):该访问限定符修饰的成员,可以直接在类外进行访问
注意:
-
访问限定符只可以在类内使用作用于类的成员
-
访问限定符限定的是类内成员能否被内外访问,而不限定类内成员能否在类内访问
-
类内的成员变量在类内可以任意访问
-
class定义的类默认的类外访问权限是私有的,而struct定义的类默认的类外访问权限是公开的(因为要兼容C语言)