C++阶段学习总结

  最近学习了c++编程语言,先说一下总体感受:首先c++和c是两种思想的语言,c是面向过程的语言,而c++是面向对象的语言,所以在学习c++时更重要的学习编程思想,面向对象的思想,而且结合STL模板库,c++能实现很复杂的功能,在解决问题时,更重要的是根据实际对象,将对象的属性抽象出来,然后封装成类。

那么什么是封装呢?

封装可以隐藏实现细节,使得代码模块化;封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。在面向对象编程上可理解为:把客观事物事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

封装好了之后,c++中提供了继承和多态,

继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行拓展。其继承的过程,就是从一般到特殊的过程。

通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。要实现继承,可以通过“继承”和“组合”来实现。在某些OOP语言中,一个子类可以继承多个基类。但一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。

多态是什么,多态是在发出同一调用时做出了不同的反应

继承以后子类可以得到什么:

  • 子类拥有父类非private的属性和方法
  • 子类可以添加自己的方法和属性,即对父类进行扩展
  • 子类可以重新定义父类的方法,即多态里面的覆盖,后面会详述

关于构造函数:

  • 构造函数不能被继承,子类可以通过(Java super()/(C# base())显示调用父类的构造函数
  • 创建子类时,编译器会自动调用父类的 无参构造函数
  • 如果父类没有定义无参构造函数,子类必须在构造函数的第一行代码使用super()/base()显示调用

构造器的总结:一个子类继承父类,那么在调用构造器时,会先调用父类的构造器,这个父类的构造器和子类中的要一样,如果在父类中没有写和子类一样的构造器,那么必须在子类中用base声明调用父类其他的构造器,否则会报错。构造器的一个原则就是:在调用子类构造器之前必须先调用父类的构造器,如果父类中有和子类一样的构造器,那么不用再写什么,如果没有,那么必须声明在调用子类构造器之前要调用哪一个父类的哪一个构造器,用base声明。

总之,c++的编程语法虽然比较复杂,但是能掌握好它的编程思想,也能写出比较好的c++程序!

猜你喜欢

转载自blog.csdn.net/Dachao0707/article/details/81842871
今日推荐