C++ 类与对象

C++ 类与对象

引言

在C++编程语言中,类与对象是核心概念之一。类是一种用户自定义的数据类型,它包含了数据和操作这些数据的函数。对象是类的实例,即根据类创建的具体实体。本文将详细介绍C++中的类与对象,包括类的定义、对象的创建、成员函数的使用以及类与对象的高级特性。

类的定义

在C++中,使用class关键字定义一个类。类由成员变量和成员函数组成。以下是一个简单的类定义示例:

class Rectangle {
public:
    int width;
    int height;

    void setWidth(int w) {
        width = w;
    }

    void setHeight(int h) {
        height = h;
    }

    int getArea() {
        return width * height;
    }
};

在上面的示例中,我们定义了一个名为Rectangle的类,它有两个成员变量widthheight,以及三个成员函数setWidthsetHeightgetArea

对象的创建

对象是根据类创建的实例。在C++中,使用new关键字创建对象。以下是如何创建Rectangle类的对象:

Rectangle rect1;

上述代码创建了一个名为rect1Rectangle对象。

成员函数的使用

成员函数是类的一部分,用于操作类的成员变量。在上面的Rectangle类中,setWidthsetHeight是用于设置成员变量widthheight的成员函数,而getArea是用于计算矩形面积的成员函数。以下是如何使用这些成员函数:

rect1.setWidth(10);
rect1.setHeight(20);
int area = rect1.getArea();

上述代码首先设置了rect1对象的宽度和高度,然后使用getArea函数计算面积。

类与对象的高级特性

构造函数和析构函数

构造函数是用于初始化新创建的对象的成员函数。析构函数是用于释放对象占用的资源的成员函数。以下是一个包含构造函数和析构函数的类示例:

class Rectangle {
public:
    int width;
    int height;

    Rectangle(int w, int h) {
        width = w;
        height = h;
    }

    ~Rectangle() {
        // 释放资源
    }

    // ...
};

在上面的示例中,构造函数Rectangle(int w, int h)用于初始化widthheight成员变量,而析构函数~Rectangle()用于释放资源。

继承

继承是C++中的一个重要特性,允许创建新的类(子类)基于现有类(父类)。以下是一个简单的继承示例:

class Square : public Rectangle {
public:
    Square(int side) : Rectangle(side, side) {
        // 初始化
    }

    // ...
};

在上面的示例中,Square类继承自Rectangle类,并使用构造函数初始化widthheight成员变量。

多态

多态是C++中的另一个重要特性,允许使用基类指针或引用调用子类中的函数。以下是一个多态示例:

class Rectangle {
public:
    virtual void draw() {
        // 绘制矩形
    }
};

class Square : public Rectangle {
public:
    void draw() override {
        // 绘制正方形
    }
};

int main() {
    Rectangle* rect = new Square(10);
    rect->draw();
    delete rect;
    return 0;
}

在上面的示例中,draw函数在Rectangle类中声明为虚函数,在Square类中重写。在main函数中,我们使用基类指针rect调用draw函数,但由于多态,实际上调用的是Square类中的draw函数。

总结

本文介绍了C++中的类与对象,包括类的定义、对象的创建、成员函数的使用以及类与对象的高级特性。掌握这些概念对于C++编程至关重要,有助于提高代码的可重用性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值