📜  方法 - C++ (1)

📅  最后修改于: 2023-12-03 15:40:05.987000             🧑  作者: Mango

方法 - C++

简述

在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++中,方法是面向对象编程中的重要概念之一。我们可以通过它来实现类中的行为,直接处理类的数据。通过方法,我们可以将数据以及数据上的相关行为封装起来,从而将一个类作为一个整体来看待。