成员函数是在类定义中声明并操作类的数据成员的函数,成员函数的定义可以在类定义的内部或外部。
如果成员函数在类内定义,则可以直接定义,但如果在类外定义,则必须使用范围解析 ::
运算符以及类名和函数名。
例如:
class Cube
{
public:
int side;
/*
声明了一个函数名为 getVolume,
它没有任何参数,返回类型为int。
*/
int getVolume();
};
如果我们在类中定义函数,那么我们不需要先声明它,可以直接定义函数。
class Cube
{
public:
int side;
int getVolume()
{
return side*side*side;
}
};
但是如果我们打算在类外定义成员函数,那么我们必须在类中声明该函数,然后在外面实现它。
class Cube
{
public:
int side;
int getVolume();
}
// 类外定义成员函数
int Cube :: getVolume()
{
return side*side*side;
}
两种方式定义的函数是相同的,在 main() 中,我们将实例化该类的对象,并使用点 .
运算符调用成员函数。
与访问类中的数据成员类似,我们也可以使用点运算符(.)
通过类对象访问公共成员函数。
下面我们有一个简单的代码示例,我们在其中实例化类 Cube
的对象并调用成员函数 getVolume()
:
int main()
{
Cube C1;
C1.side = 4; // 设置side的值值
cout<< "C1的Volume:"<< C1.getVolume();
}
以上实例输出结果:
C1的Volume:16
类似地,我们也可以定义 getter 和 setter 函数来访问类定义内部或外部的私有数据成员。