类(关键词):数据抽象(数据成员和函数成员),封装(private),构造函数,静态成员

1.判断一个类是否是抽象数据类型,可以看我们对这个类的操作是对你内的数据成员操作,自己编写相应的处理函数,还是直接通过它的接口来使用这个类,完全不用知道这个类内具体有什么数据成员。

2.当我们设计类的接口的时候,应该考虑如何才能使得类易于使用,而当我们使用类时,不应该顾及类的实现机理。

3.任何对类成员的直接访问都被看作this的隐式调用。
任何自定义this的参数或变量的行为都是非法的。
默认化的,this被定义的类型为Sale_data * const 但是这样的话,就无法将this绑定到常量对象上。(因为this的地址是个常量,但是所指的内容不是,如果可以的话,就可以通过this修改这个常量的值)所以在一般在这样的函数参数列表后再加一个const

4.编译器:对于类内处理方式:
声明:
声明中使用的名字,包括返回类型或者参数列表中使用的名字,都必须在使用前可见。(从此声明前找)
成员函数的定义:处理完所有声明后再处理成员函数的定义。

5.一般来说,内层作用域可以重新定义外层作用域中的名字,即使该名字已经内层作用域中使用过。然而再类中,如果成员使用了外层作用域中的某个名字,而该名字代表一种类型,则类不能再之后重新定义该名字。

6.成员函数内的名字查找规则:
①先再函数体内查找
②再到类内查找,此时类内所有的成员都可以被考虑。
③然后再到成员函数定义之前的作用域,全局作用域查找。
可以指定访问类内成员,再名字前加类名::
对于域外对象,可以通过只加::访问

7.如果成员是const,引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始值列表为这些成员提供初值。

8.成员的初始化顺序和它们再类中定义出现的顺序一致。最好令构造函数初始值的顺序与成员声明的顺序保持一致。而且如果可能的话,尽量避免使用某些成员初始化其他成员

9.想定义一个使用默认构造函数进行初始化的对象,对象名后什么都不加就可以。
例子:
Sale_data obj;//正确
Sale_data obj();//错误声明成了函数。

10.聚合类:满足条件:
①所有成员都是public的
②没有定义任何构造函数
③没有类内初值
④没有基类,也没有virtual函数


11.类的静态成员:
①静态成员函数不能与任何对象绑定在一起,不包含this指针。因此静态成员函数不能声明成const也不能再static函数体内使用this指针。
②static关键字只能出现在类内部的声明语句中。
③即使一个常量静态常量数据成员在类内部被初始化了,通常情况下也应该在类的外部定义一下该成员。
④静态类型的优点:
可以是不完全类型。
可以用作默认实参。
④一般来说静态数据成员不能再类内初始化,除非是字面值常量类型的constexpr

Chapter7(类) --C++Prime笔记的更多相关文章

  1. JavaFx 中常见的包和类(javafx笔记 )

    JavaFx 中常见的包和类(javafx笔记 ) 更多详细内容请参考<Pro JavaFX 8>. javafx.stage 包包含以下类: Stage 类 ​ Stage 类是任何 J ...

  2. Qt 串口类QSerialPort 使用笔记

    Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供 ...

  3. C++类的静态成员笔记

    下面是C++类的静态成员笔记. 静态数据成员特征 用关键字static声明 为该类的所有对象共享,静态数据成员具有静态生存期 必须在类外定义和初始化,用(::)来指明所属的类 举例说明-具有静态数据成 ...

  4. Java程序设计(2021春)——第三章类的重用笔记与思考

    Java程序设计(2021春)--第三章类的重用笔记与思考 本章概览: 3.1 类的继承(概念与语法) 3.2 Object类(在Java继承最顶层的类) 3.3 终结类和终结方法(只能拿来用,不可以 ...

  5. Java中Object类的方法笔记

    今天看了下Object类的源码,以下是我看源码的一些笔记,欢迎有小伙伴来补充~ 首先列举下几个主要方法(面试被问到过的): equals:这个主要是用于比较对象的,Object中比较的是比较原始的,直 ...

  6. Chapter6(函数) --C++Prime笔记

    1.重载函数,也就是说一个名字可以对应几个不同的函数. 2.内置类型的未初始化局部变量将产生未定义的值. 3.局部静态对象在程序执行路径第一次进过对象定义语句时初始化,并且直到程序终止才被销毁. 内置 ...

  7. Chapter2(变量和基础类型)--C++Prime笔记

    数据类型选择的准则: ①当明确知晓数值不可能为负时,选用无符号类型. ②使用int执行整数运算.在实际应用中,short常常显得太小而long一般和int有一样的尺寸.如果运算范围超过int的表示范围 ...

  8. Chapter1(预科)--C++Prime笔记

    心得体会: 因为之前一直在用在学C,因此在看完C++Prime第一章后,就有中在一个培训班中,一个老师用一个简单的项目来带你了解这种语言的特性的感觉.当然这个告诉是在让你脑子固化接受一些点的前提下. ...

  9. python 面向对象(类)--学习笔记

    面向对象是一种编程方式, 主要集中在类和对象的两个概念 python 中的类符合封装, 继承, 多态的特征 类 是一个模板, 是n多函数的集成 对象 是类的实例化 类的成员分为三大类:字段.方法.属性 ...

随机推荐

  1. Array.Copy 数据是克隆吗?

    偶然看到 Array.Copy 方法的时候,想到,它是否是克隆,又是否是深克隆. 做了一个测试 public class abc { public string hello; } [TestMetho ...

  2. jdk10 var定义变量的由来

    百家号03-1714:11 题图:by jordhammond from instagram 本文选自聊聊架构公众号,略有修改 以前我们 Java 程序员经常会对其他语言中的 var 关键字耿耿于怀, ...

  3. java第二次试验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计   班级:1353       姓名:郭皓  学号:20135327 成绩:             指导 ...

  4. js弹出框 -搜索

    警告框alert() alert是警告框,只有一个按钮“确定”无返回值,警告框经常用于确保用户可以得到某些信息.当警告框出现后,用户需要点击确定按钮才能继续进行操作.语法:alert("文本 ...

  5. Team++_炸弹人软件需求说明书

    目标是什么,目标不包括什么? 目标是制造一款受青年人(大学生或中学生)喜爱的手机益智闯关游戏,可以用来打发时间或放松心情. 用户和典型场景是什么? 用户:学生 典型场景:在宿舍无聊时.在睡觉之前或在课 ...

  6. spring冲刺第二天

    昨天查找了安卓开发的相关资料以及炸弹人游戏的资料. 由于今天课程比较多,只在晚上将安卓开发环境配置完成. 在安装软件时环境配置出现了问题,不过问过同学后成功解决.

  7. php之 常用的 流程管理

    1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一.要有数据库的内容的 肯定会有表的,首先就是用户表了,然后就是流程表,用户编 ...

  8. 我对git的认识

    Git 真的是不了解 也没听说过git 所以真的不知道从何谈起 所以就参考度娘啦! Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus To ...

  9. 作业6 团队项目之需求 (NABCD模型)

     N A B C D模型分析 WorkGroup:NewApps 组员:欧其锋(201306114305  http://www.cnblogs.com/ouqifeng/) 吕日荣(20130611 ...

  10. linux 环境配置要点

    cd root .bash_profile 这个是配置当前用户的环境变量 cd /etcprofile 这个是配置系统的环境变量 which xxx 查看命令的目录 source .bash_prof ...