ylww

随笔仅作学习记录,请辩证参考!!!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  166 随笔 :: 0 文章 :: 0 评论 :: 11615 阅读

面向对象的思想

面向过程:

什么是面向过程?

根据程序的执行过程,来设计软件的所有细节。

面向过程的缺点:

开发大型项目时,越来越难以把控,甚至失去控制。

后期维护、更新成本很大。

解决方案:

使用面向对象 。

 

什么是面向对象?

面向对象是一种开发思想,一种全新的开发方式。

 

面向对象编程,最重要的第一个概念:

 

定义一个“人类”:(类基本上是方法对外,不会将里面的数据对外暴露,虽然技术上是可以的。数据对外一般用struct)

 默认是private

 

 

 对象

 构造函数

在创建一个新的对象时,自动调用的函数,用来进行“初始化”工作:

对这个对象内部的数据成员进行初始化。

特点:

 

 

 构造函数的种类:

默认构造函数:没有参数的构造函数,称为默认构造函数。

        1.合成的默认构造函数

     当没有手动定义默认构造函数时,编译器自动为这个类定义一个构造函数。

       

                  类内初始值:c++11才支持,即在定义类的时候给定数据初始值。

 

    2.手动定义的默认构造函数

       常称为“默认构造函数”,以上面人类为例,在public方法中,写上Human();实现:

      调用:Human h1;(定义对象时,自动调用) 

                                   

      

 

自定义的构造函数:(自定义的重载构造函数)。在类中写(第二行):

实现:

 

 这里如果写age=age;两个变量做覆盖,以小范围为准,所以这里两个age都是形参。或者将此函数的形参名改一下,int Age(age = Age);

this指针是指向对象本身。调用:Human h2(25, 28000);  //调用自定义的构造函数

 

 

 拷贝构造函数:

  1.手动定义的拷贝构造函数

     在类中写:Human(const Human &other);  (也可以写成Human(const Human &);  一个类中只能定义一个拷贝构造函数)    实现:

                           调用:

      Human h2 = h1; //调用拷贝构造函数

      Human h3(h1);   //调用拷贝构造函数

  2.合成的拷贝构造函数

    自动生成的拷贝构造函数。此种拷贝构造函数的缺点:”浅拷贝“

    

 

            

 

 

 

赋值构造函数

  1.手动定义的赋值构造函数

     类中写:Human& operator=(const Human &other); //   =运算符重载           定义:

      ------> 

  2.合成的赋值构造函数

     Human f1,f2;    f2=f1; (注意区分Human h2 = h1拷贝构造函数) 自动调用赋值构造函数,若没有定义

     赋值构造函数,则会自动生成合成的赋值构造函数。数据采用“浅拷贝”

    

 

析构函数

 类中写:

实现:

     

析构函数是可以显示调用的,可以参考allocator类相关的destroy函数。(猜测)

 

类文件的分离

posted on   理想主义者光芒万丈  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示