zoukankan      html  css  js  c++  java
  • C++中的类定义

      类的基本思想是数据抽象和封装,数据抽象是一种依赖接口和实现分离的编程技术。

        类的接口包括用户所能执行的操作;类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。

      封装实现了类的接口和实现的分离封装后的类隐藏了它的实现细节。

    定义抽象数据类型

      引入this 

        成员函数通过一个名未this的额外隐式参数访问调用它的那个对象,当我们调用一个成员函数的时候,用请求该函数的对象地址初始化this,

         例如:total.isbn()    成员函数通过一个名为this.total的额外隐式参数来访问调用它的那个对象,当我们调用一个成员函数时,用请求该函数的对象地址初始化this,

         调用total.isbn() 编译器负责把total的地址传给isbn的隐式形参this,可以等价的认为编译器将该调用写成了  Sales_data :isbn(&total),   调用Sales_data的isbn成员时传入了total的地址       

          【Sales_data是类】

      引入const成员函数

        使用const的成员函数被称作常量成员函数。

        常量对象,以及常量对象的引用或指针都只能调用常量成员函数。

      

      类作用域和成员函数

        类本身就是一个作用域。成员函数定义嵌套在其之内。

      在类的外部定义成员函数

        成员名字需包含所属类名。

    定义类相关的非成员函数

    构造函数

      控制对象的初始化过程的函数叫构造函数。

        构造函数不能被声明为const。

      类通过一个特殊的构造函数来控制摸摸人初始化过程,这个函数叫做默认构造函数。默认构造函数无须任何实参。

      编译器创建的构造函数又被成为合成的默认构造函数。

      

      某些类不能遗留合成的默认构造函数

        notes: 只有当类没有声明任何构造函数时,便要一起才回自动的生成默认构造函数。

        notes2:如果类包含有内置类型或者复合类型的成员,则只有当这些成员全都被赋予了类内的初始值时,这个类才适合于使用合成的默认构造函数。

      =default的含义

        在c++11新标准中,若需要默认行为,可以通过在参数列表后面写上 =default来要求编译器生成构造函数。

          如:    Sales_data() = default;

      构造函数初始化列表

        notes: 构造函数不应该轻易覆盖掉类内的初始值,除非新赋的值与原值不同,如果不能使用类内初始值,则所有构造函数都应该显式地初始化每个内置类型的成员。

      在类的外部定义构造函数

        和在类外部定义成员函数相类似。

      拷贝、赋值和析构

      

      

  • 相关阅读:
    paip.提升性能C#.NET程序内存占用过多以及OutOfMemory解决方法
    ATTILAX项目进展表VC425
    paip.VOB DVD视频的无损分割与截取
    paip.程序不报错自动退出的解决
    paip.TechExcel DevSuite IIS 应用配置
    paip.软件版本完善计划C426fromVC423
    paip.chrome使用ACTIVX 的总结
    PAIP批量改名JS实现
    Source Navigato rNG4.4在ubuntu的简单的安装
    QuartusII编译出错小小总结
  • 原文地址:https://www.cnblogs.com/xingzhuan/p/10596512.html
Copyright © 2011-2022 走看看