C++模板、继承和多态

C++模板的使用

C++模板是C++编程中非常重要的一部分,它可以让我们编写通用的代码,避免重复代码的编写。模板可以用于函数、类和类型别名等。下面给出一个函数模板的示例:

template<typename T>
T Max(T a, T b)
{
    return a > b ? a : b;
}

这个函数模板可以用于比较任意类型的数据,如整数、浮点数和字符串等。使用时只需要将具体的类型作为模板参数传递即可。

C++继承的实现

C++继承是面向对象编程中的重要概念,它可以让我们通过基类派生出新的类。下面给出一个简单的继承示例:

class Animal
{
public:
    void Eat()
    {
        std::cout << "Animal is eating" << std::endl;
    }
};

class Cat : public Animal
{
public:
    void Meow()
    {
        std::cout << "Cat is meowing" << std::endl;
    }
};

这个示例中,Cat类继承了Animal类的成员函数Eat,并添加了自己的成员函数Meow。通过继承,Cat类可以访问Animal类的成员函数和数据成员。
C++多态的实现

C++多态是面向对象编程中的另一个重要概念,它允许我们通过指向基类的指针或引用来调用派生类的成员函数。下面给出一个多态的示例:

class Shape
{
public:
    virtual void Draw() = 0;
};

class Circle : public Shape
{
public:
    void Draw() override
    {
        std::cout << "Drawing a circle" << std::endl;
    }
};

class Rectangle : public Shape
{
public:
    void Draw() override
    {
        std::cout << "Drawing a rectangle" << std::endl;
    }
};

void DrawShapes(std::vector<Shape*> shapes)
{
    for (auto shape : shapes)
    {
        shape->Draw();
    }
}

这个示例中,Shape类是一个抽象基类,它定义了一个纯虚函数Draw。Circle和Rectangle类都继承了Shape类,并实现了Draw函数。DrawShapes函数接受一个Shape指针的vector,通过调用虚函数Draw实现多态。

结尾:

以上是C++模板、继承和多态的简单示例。它们是C++编程中非常重要的概念,掌握它们可以让我们编写更加通用、灵活的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值