21xrx.com
2024-12-22 17:26:41 Sunday
登录
文章检索 我的文章 写文章
C++继承实例展示
2023-07-04 20:23:39 深夜i     --     --
C++ 继承 实例展示 面向对象编程 类与对象

C++是一种高级编程语言,具备面向对象的编程范式。在面向对象中,继承是其中一个非常重要的概念,可以让一个类在另一个类的基础上进行扩展和修改。在本文中,我们将介绍几个C++继承的实例展示。

先来看一个最基本的实例:


class Animal {

public:

 void eat()

  std::cout << "I can eat" << std::endl;

 

};

class Dog : public Animal {

public:

 void bark()

  std::cout << "I can bark" << std::endl;

 

};

在这个例子中,我们定义了一个Animal类,并在其中实现了一个eat()方法。接着,我们定义了一个Dog类,并且在Dog类的定义中使用public继承语法继承了Animal类。这意味着,在Dog类中,我们可以使用Animal类中的成员函数和变量。

我们还定义了一个bark()方法,该方法是Dog类自己的方法,并没有在Animal类中实现。然而,我们可以通过Dog类对象来访问eat()方法,因为Dog类继承了Animal类。

接下来我们看一个更加具体的实例:


class Geometry {

public:

 virtual double area() return 0;

};

class Rectangle : public Geometry {

public:

 Rectangle(int l, int w) : length(l), width(w) {}

 double area() { return length * width; }

private:

 int length;

 int width;

};

class Circle : public Geometry {

public:

 Circle(int r) : radius(r) {}

 double area() { return 3.1415926 * radius * radius; }

private:

 int radius;

};

这个例子中,我们定义了一个Geometry类,并且定义了一个虚函数area()。接着,我们定义了两个派生类:Rectangle类和Circle类。这两个类都继承了Geometry类,并且重新定义了虚函数area()。Rectangle类的area()方法用于计算矩形的面积,Circle类的area()方法用于计算圆的面积。

在这个例子中,我们使用了多态性。我们声明了一个Geometry指针,并在程序运行时根据使用者的设定将它指向Rectangle类或Circle类的对象。然后,我们调用指针所指向对象的area()方法,该方法会分别根据指向的对象类型来调用不同的虚函数实现。

最后,让我们看一个关于C++构造函数继承的例子:


class Person {

public:

 Person()

  std::cout << "Person constructed" << std::endl;

 

 Person(const std::string& name)

  this->name = name;

  std::cout << "Person constructed with name " << this->name << std::endl;

 

 void sayHello()

  std::cout << "Hello

protected:

 std::string name;

};

class Student : public Person {

public:

 Student(const std::string& name, int grade) : Person(name)

  this->grade = grade;

  std::cout << "Student constructed with grade " << this->grade << std::endl;

 

private:

 int grade;

};

在这个例子中,我们定义了一个Person类,并定义了两个构造函数:一个是不带参数的构造函数,一个是带参数的构造函数,用于初始化name属性。接着我们定义了一个Student类,并向其传递了name和grade两个参数。在Student类的构造函数中,我们使用了Person类的带参数的构造函数,并且在构造函数中初始化了Student类自己的grade属性。

总之,这些例子展示了C++中继承的一些常见用法和技巧。在实际的编程中,继承是一个常用的概念,并且可以解决很多实际的编程问题。当然,如果使用不当,会造成一些问题,所以在设计和编写代码时要慎重考虑。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复