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++编程中非常重要的概念,掌握它们可以让我们编写更加通用、灵活的代码。