在C++语言中,类的成员函数是指那些把定义和原型写在类定义内部的函数,它们是类的一个成员,可以访问对象中的所有成员。类的成员函数是面向对象编程的核心组成部分,因为它们定义了类的行为和功能。
成员函数的声明和定义
在类定义内部,成员函数的声明包括函数的返回类型、函数名以及可能的参数列表。函数的定义是在类外部,通常与声明放在一起,但也可以分开。如果函数定义在类外部,必须在类内部声明函数,并使用作用域解析运算符::来指明函数所属的类。
例如:
在这个例子中,Box类有一个名为volume的成员函数,它计算盒子的体积。首先,在类内部声明了volume函数,然后在外部定义了它。
成员函数的访问控制
成员函数可以根据访问控制符分为公共(public)、私有(private)和受保护(protected)成员函数。公共成员函数可以从类的内部和外部访问;私有成员函数只能从类的内部访问;受保护成员函数类似于私有成员函数,但它们还可以被派生类访问。
例如:
在这个例子中,Base类有一个受保护的protectedData成员变量和两个成员函数:publicFunction和privateFunction。Derived类是Base的公有派生类,它可以访问protectedData成员变量,但不能访问privateData成员变量。
成员函数的默认访问权限
如果不显式指定成员函数的访问控制符,则成员函数的默认访问权限取决于其定义的位置。如果在类内部定义,则默认为私有;如果在外部定义,则默认为公共。
例如:
在这个例子中,即使没有明确指定volume函数的访问控制符,它也是公共的,因为它在类外部定义。
成员函数的调用
成员函数可以通过对象名加方法名的形式调用,也可以通过类名加作用域解析运算符::再加方法名的形式调用。
例如:
成员函数的作用域
成员函数的作用域是整个类体,这意味着成员函数可以访问类内的所有成员,包括其他成员函数和成员变量。
总之,C++类的成员函数是定义类行为的关键。它们可以访问类的所有成员,并通过对象名或类名来调用。成员函数的访问控制符决定了它们可以被哪些部分访问,这是面向对象编程中的一个重要概念。