当前位置:首页 C++ > 正文

C++继承、多态、友元、静态变量、重载

作者:野牛程序员:2023-12-27 13:48:35 C++阅读 2373

继承(Inheritance)是面向对象编程的一个重要概念,它允许一个类(派生类)继承另一个类(基类)的属性和方法。派生类可以继承基类的成员,同时可以添加自己的成员。例如:

class Shape {
public:
    void draw() {
        // 绘制形状的通用代码
    }
};

class Circle : public Shape {
public:
    void drawCircle() {
        // 绘制圆形的特定代码
    }
};

在上面的例子中,Circle 类继承自 Shape 类,因此它具有 draw 方法。

多态性(Polymorphism)是另一个重要的概念,它允许以统一的方式处理不同类型的对象。C++ 中实现多态性的一种方式是通过虚函数和指针。例如:

class Shape {
public:
    virtual void draw() {
        // 绘制形状的通用代码
    }
};

class Circle : public Shape {
public:
    void draw() override {
        // 绘制圆形的特定代码
    }
};

// 使用多态性
Shape* shapePtr = new Circle();
shapePtr->draw(); // 调用 Circle 类的 draw 方法
delete shapePtr;

在上面的例子中,Shape 类中的 draw 方法被声明为虚函数,而 Circle 类覆盖了这个虚函数。通过将 Circle 类的实例赋给基类指针,可以实现多态性。

友元(Friend)是一个关键字,用于授权其他类或函数访问当前类的私有成员。例如:

class A {
private:
    int privateData;

    friend class B; // B 类是 A 类的友元,可以访问 A 类的私有成员
};

class B {
public:
    void accessPrivateData(A& a) {
        a.privateData = 10; // 可以访问 A 类的私有成员
    }
};

静态变量(Static Variable)是类的成员,它属于整个类而不是类的实例。静态变量在类的所有实例之间共享。例如:

class MyClass {
public:
    static int staticVariable; // 静态变量声明

    void modifyStaticVariable() {
        staticVariable++;
    }
};

int MyClass::staticVariable = 0; // 静态变量定义

// 使用静态变量
MyClass obj1, obj2;
obj1.modifyStaticVariable();
cout << obj2.staticVariable; // 输出 1

重载(Overloading)允许在同一作用域内定义多个相同名称但参数列表不同的函数或运算符。例如:

class MathOperations {
public:
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }
};

// 使用重载的函数
MathOperations math;
int resultInt = math.add(2, 3);
double resultDouble = math.add(2.5, 3.7);

在上面的例子中,add 函数被重载,分别用于处理整数和浮点数。根据传递的参数类型,编译器会选择调用合适的重载函数。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击