21xrx.com
2024-11-10 00:53:27 Sunday
登录
文章检索 我的文章 写文章
C++代码复用:两种方式详解
2023-06-22 18:36:07 深夜i     --     --
C++ 代码复用 继承 组合 多态

C++是一种通用编程语言,简单易学,被广泛应用于各种软件开发领域。为了提高代码效率和减少开发时间,C++支持代码复用,这是一个非常重要且实用的编程概念。本文将详细介绍C++代码复用的两种方式。

方式一:继承

继承是C++中最常用的代码复用方式之一,它允许程序员创建一个新的类,该类从另一个基类“继承”属性和方法。在继承之后,子类就可以像使用自己的属性和方法一样使用父类的属性和方法。这个操作可以通过以下方式进行:


class FatherClass {

public:

  void run()

    cout << "FatherClass run" << endl;

  

};

class SonClass : public FatherClass {

public:

  void sleep()

    cout << "SonClass sleep" << endl;

  

};

int main() {

  SonClass* son = new SonClass();

  son->run(); //输出:FatherClass run

  son->sleep(); //输出:SonClass sleep

  system("pause");

  return 0;

}

上面的例子中,SonClass从FatherClass继承了run方法,并在SonClass中实现了sleep方法。通过这个方法,SonClass可以在不重写run方法的情况下使用FatherClass中的run方法。

方式二:组合

组合是另一种常见的代码复用方式,它是通过将一个类的对象作为另一个类的成员变量来实现的。这种方式的好处在于,当一个类的实现发生变化时,另一个类仍然可以更好地工作,只需简单地更改成员变量即可实现。以下是一个使用组合的例子:


class FatherClass {

public:

  void run()

    cout << "FatherClass run" << endl;

  

};

class SonClass {

public:

  SonClass(FatherClass* papa) : father(papa) {}

  void sleep() {

    cout << "SonClass sleep" << endl;

    father->run();

  }

private:

  FatherClass* father;

};

int main() {

  SonClass* son = new SonClass(new FatherClass());

  son->sleep(); //输出:FatherClass run SonClass sleep

  system("pause");

  return 0;

}

在上面的例子中,SonClass包含了一个FatherClass对象作为成员变量,通过在sleep方法中调用FatherClass对象的run方法来实现复用。

总结:

以上介绍的两种代码复用方式在C++编程中非常常见,具有很高的实践价值。继承是从现有类扩展出一个新类的有效方法,而组合是将类中有用的部分抽象出来,成为一个新类的成员变量的方法。合理选择这两种方法可以显著提高代码效率,减少代码修复工作。

  
  
下一篇: C++中的goto语句

评论区

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