C++ 类成员函数
类成员函数是在类声明中定义或原型化的类似其他变量的函数。它可以访问类的所有成员,并可以操作该类的任何对象。
让我们使用一个成员函数来访问之前创建的类的成员,而不是直接访问它们。
class Dice {
public:
double L; // a dice's length
double B; // a dice's breadth
double H; // a dice's height
double getVolume(void); // Returns dice volume
};
成员函数可以在类定义内部或使用作用域解析运算符(::)在类定义外部单独定义。即使没有使用内联说明符(inline specifier),在类声明中指定成员函数也会将该函数声明为内联函数。因此,您可以按照下面的方式定义Volume()函数。
class Dice {
public:
double L; // a dice's length
double B; // a dice's breadth
double H; // a dice's height
double getVolume(void) {
return L * B * H;
}
};
如果我们想要的话,我们可以使用范围解析运算符(::)在类外部定义相同的函数,如下所示。
double Dice::getVolume(void) {
return L * B * H;
}
记住这里的主要事项是,我们必须在”::”运算符之前精确地使用类名。点运算符(.)将用于在对象上执行成员函数,并且只会操作与该对象相关的数据,如下所示:
Dice myDice; // Generate an object
myDice.getVolume(); // Call the object's member function
让我们将上面讨论的技术应用于设置和获取类的各种成员的值。
C++程序
#include
using namespace std;
class Dice {
public:
double L; // a dice's length
double B; // a dice's breadth
double H; // a dice's height
// Member functions declaration
double getVolume(void);
void setL(double length);
void setB(double breadth);
void setH(double height);
};
// Member functions definitions
double Dice::getVolume(void) {
return L * B * H;
}
void Dice::setL(double length)
{
L = length;
}
void Dice::setB(double breadth) {
B = breadth;
}
void Dice::setH(double height) {
H = height;
}
// Main function
int main() {
Dice Dice1; // Declare Dice1 of type Dice
Dice Dice2; // Declare Dice2 of type Dice
double volume = 0.0; // here the volume of a Dice is stored
// dice 1 specification
Dice1.setL(6.0);
Dice1.setB(7.0);
Dice1.setH(5.0);
// Dice 2 specification
Dice2.setL(12.0);
Dice2.setB(13.0);
Dice2.setH(10.0);
// volume of Dice 1
volume = Dice1.getVolume();
cout << "Volume of Dice1 : " << volume <
输出:
Volume of Dice1 : 210
Volume of Dice2 : 1560