C++ Primer Plus(十)——对象和类
为什么80%的码农都做不了架构师?>>>
采用OOP方法时,首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操作,完成对接口的描述后,需要确定如何实现接口和数据存储,最后使用新的设计方案 创建出程序。
指定基本类型完成了三项工作:
决定数据对象需要的内存数量
决定如何解释内存中的位
决定可使用数据对象执行的操作和方法
类设计尽量将公有接口与实现细节分开,程序员可以使用私有成员函数来处理不属于公有接口的实现细节
不必在类声明中使用关键字private,因为这是类对象的默认访问控制;结构的默认访问类型是public。C++程序员通常使用类来实现类描述,而把结构限制为只表示纯粹的数据对象。
为了避免成员函数的参数与数据成员名称相同,一种常用的做法是在数据成员名中使用m_前缀,另一种常用的做法是使用后缀_。
什么时候调用构造函数?
如果创建的是静态存储类对象,则其析构函数将在程序结束时被自动调用。
如果创建的是自动存储类对象,则其析构函数在程序执行完代码块时被自动调用。
如果对象时通过new创建的,则他将驻留在栈内存或自由存储区中,当使用delete来释放内存时,其析构函数被自动调用。
将const关键字放在函数的括号后面,这样就能保证函数不会修改调用对象,这种函数被称为const成员函数。制药类方法不修改调用对象就应将其声明为const。
接受一个参数的构造函数允许使用赋值语法将对象初始化微一个值。
要创建类对象数组,则这个类必须有默认构造函数。初始化对象数组的方案是,首先使用默认构造函数创建数组元素,然后花括号中的构造函数将创建临时变量,然后将临时变量拷贝到相应元素中。
作用域为类的常量,不能声明为const 类型 常量名,而可以将其声明为enum{元素名=常量},这种方式声明枚举不会创建类数据成员,他只是一个符号名称;也可以使用关键字static,具体为 static const 类型 常量名 来定义常量。
相同作用域内的两个枚举很可能发生名称冲突,C++11提供了一种新枚举,在枚举关键字后加入class或struct,即可限定枚举的作用域为类内。
在有些情况下,常规枚举会自动转换为整型,但作用域内枚举不能隐式转为整型。
面向对象编程强调的是程序如何表示数据。使用OOP方法解决变成问题的第一步是根据它与程序间的接口来描述数据,从而指定如何使用数据,然后设计一个类来实现该接口。
转载于:https://my.oschina.net/shou1156226/blog/603401
C++ Primer Plus(十)——对象和类相关推荐
- 【转载】c++之类的基本操作(c++ primer 的读书笔记 ,类对象, 类用户, 类成员的含义)
一前言 看c++ primer有一个地方看的云里雾里的,这么一段话 可以认为 protected 访问标号是 private 和 public 的混合: • 像 private 成员一样,protec ...
- C++编程入门系列之十四(类与对象:构造函数和析构函数)
C++编程入门系列之十四(类与对象:构造函数和析构函数) 鸡啄米上一节中给大家讲解了类的声明.成员的访问控制和对象,今天鸡啄米给大家讲C++编程入门时同样必须掌握的构造函数和析构函数.从上一讲开始已经 ...
- 客快物流大数据项目(五十六): 编写SparkSession对象工具类
编写SparkSession对象工具类 后续业务开发过程中,每个子业务(kudu.es.clickhouse等等)都会创建SparkSession对象,以及初始化开发环境,因此将环境初始化操作封装成工 ...
- 一、静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。...
静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同. 声明的返回类型的任何子类都是允许的. 返回对象的类也可以随每次发布而不同. EnumSet类(条目 36)没有公共构造方法,只有静态工 ...
- 2020 我的C++的学习之路 第十章 对象和类
以C++ Primer Plus为参考书籍,自身归纳知识点,加深记忆. 对象和类 过程性编程与面向对象编程 对象和类 类 类声明 实现类成员函数 方法与对象 类的构造函数与析构函数 声明和定义构造函数 ...
- 类与对象初识 类是模具 对象是产品 0314 2101
类与对象 程序中的类相当于生活中的模具 有一个模具可以创造无数个对象 同理 有一个类就可以创造无数个程序中的实体 关于对象 对象都具有两个特性: 特征(属性),名词 行为(方法),动词 日向雏田 类的 ...
- C++学习 十五、类继承(1)基类,派生类,访问权限,protected
C++学习 十五.类继承(1)基类,派生类 前言 类继承 类的关系与继承 基类, 派生类 基类 派生类 构造函数,析构函数 文件位置 访问权限 protected 后记 前言 本篇开始学习C++类的继 ...
- 复习Python的Day40:对象、类的从属关系
复习Python的第四十天 习题 45: 对象.类.以及从属关系 从整个计算机科学的角度来说,对象是对客观事物的抽象,类是对对象的抽象,大类是对小类的抽象.类和对象都是一种抽象的数据类型. 对象(Ob ...
- C++ Primer Plus- 类与对象-note2
txt文档转存 第十章 对象和类 构造函数,默认构造函数(没参数),编译器生成的构造函数,构造函数初始化器,复制构造函数,构造函数初始化列表,析构函数,赋值运算符 OOP特性:抽象,封装和数据隐藏,多 ...
- python---面向对象(类)
目录 一.self的使用方法 二.__ slots__属性的使用 三.魔法方法(魔术方法) 1.__ __init____(self) __ __def____(self) 2.__ __str___ ...
最新文章
- OpenCV2.4.13在VS2012环境的debug模式下的链接库输入配置的文件目录
- C#上位机软件串口数据接收用Invoke(同步)和BeginInvoke(异步)的区别
- C++中各种智能指针的实现及弊端(一)
- 配置VNC并远程控制服务器(电脑)
- 利用Chrome开发者工具memory comparison分析一个时间段内的JavaScript代码内存占用率
- Andrew Ng机器学习之一 导论
- Ioc容器Autofac介绍
- Android 网格视图GridView
- Python机器学习:贝叶斯文本分类器
- 智能数据引擎Dataphin重磅发布,提供一站式的技术管理能力
- 串口循环缓存区 简单 免初始化 不用堆、指针、分段memcpy
- 交互设计的职能:交互设计师具体做什么
- EA(enterprise architect)左侧工作空间隐藏,如何打开
- Empathy Map:让团队移情到用户的奥秘
- PAT 甲级1021 Deepest Root
- 形容词,名词记忆(三):ment, ent后缀常用词
- 最短路及最短路计数(SPFA)
- 实现一个简单的计算器,输入一个包含圆括号、加减乘除、求余等符号组成的算术表达式字符串,输出该算术表达式的值
- kotlin 使用ButterKnife
- 视频教程-SpringBoot+MongoDB+Vue前后分离-Java