📅  最后修改于: 2023-12-03 15:40:05.987000             🧑  作者: Mango
在C++中,方法也被称为成员函数,是指类中的一种特殊函数。和普通函数一样,方法可以有参数和返回值,同时方法能够访问类中的私有成员变量和方法。方法的调用必须通过类的实例来完成。
在类中声明方法只需要在类的定义中声明函数原型即可,不需要给出函数的实现。声明的格式如下:
class MyClass {
public:
void myMethod(int arg1, int arg2); // 声明myMethod方法
};
在类的实现中定义方法需要在函数名前面加上类名作为限定符,并在函数体内实现函数。格式如下:
void MyClass::myMethod(int arg1, int arg2) {
// 方法实现
}
方法的调用必须通过类的实例完成,有两种调用方式:
MyClass myObject; // 创建一个类的实例
myObject.myMethod(1, 2); // 通过实例调用myMethod方法
或者使用指向类实例的指针调用方法:
MyClass* myObjectPointer = new MyClass; // 创建一个类实例指针
myObjectPointer->myMethod(1, 2); // 通过指针调用myMethod方法
方法可以有参数和返回值,使用和普通函数类似的语法即可。例如:
class MyClass {
public:
int myMethod(int arg1, int arg2);
};
int MyClass::myMethod(int arg1, int arg2) {
return arg1 + arg2;
}
MyClass myObject;
int result = myObject.myMethod(1, 2); // result的值为3,即arg1+arg2的结果
在类中声明(包括方法)可以带有访问限制符,包括public、private和protected。公共的方法可以被任何代码访问,而私有的和受保护的方法只能被类内的代码和继承类的代码访问。例如:
class MyClass {
public:
void publicMethod(); // 公共方法
private:
void privateMethod(); // 私有方法
protected:
void protectedMethod(); // 受保护方法
};
C++中的静态方法当且仅当在一个类中定义,不用创建实例即可通过类名进行访问。与普通方法不同,静态方法通常不能访问非静态变量。静态方法的声明和定义方式如下:
class MyClass {
public:
static void myStaticMethod(); // 静态方法declaration
};
void MyClass::myStaticMethod() {
// 静态方法实现
std::cout << "Hello World!" << std::endl;
}
MyClass::myStaticMethod(); // 静态方法调用
子类可以继承父类的所有成员变量和方法,并可以重载和扩展父类方法。继承时需要使用冒号分隔符进行声明,格式如下:
class SubClass : public SuperClass {
public:
void subMethod(); // 子类定义的方法
};
SubClass subObject; // 创建子类实例
subObject.superMethod(); // 调用父类方法
subObject.subMethod(); // 调用子类方法
在C++中,方法是面向对象编程中的重要概念之一。我们可以通过它来实现类中的行为,直接处理类的数据。通过方法,我们可以将数据以及数据上的相关行为封装起来,从而将一个类作为一个整体来看待。