C++ primer plus 第10章 对象和类
来源:互联网 发布:淘宝如何运费设置 编辑:程序博客网 时间:2024/05/09 06:37
OOP最重要的特性:
- 抽象
- 封装和数据隐藏
- 多态
- 继承
- 可重用的代码
数据隐藏:防止程序直接访问数据
封装:数据隐藏、将实现细节隐藏在私有部分中、将类函数定义和声明放在不同的文 件中。
类函数的定义位于类声明中,则自动成为内联函数
内联函数要求在每个使用它们的文件中都对其进行定义,因此将其放在头文件中最简便
1. 构造函数
使用:(1)显式地调用 ClassName object = ClassName(arg1,arg2,……);C++标准编译器允许使用两种方法来执行该语句:第一种是和隐式调用相同,第二种是允许调用构造函数来创建一个临时对象,然后将该临时对象复制到object中,并丢弃它。
(2)隐式地调用 ClassName object(arg1, arg2,……);
仅当没有定义任何构造函数时,编译器才会提供默认构造函数。
定义了构造函数后,程序员必须人为提供默认构造函数。
两种方式:(1)给已有构造函数提供默认值。在设计类时,通常应提供对所有类成员做隐式初始化的的默认构造函数。
(2)定义另一个构造函数
注意:隐式地调用默认构造函数时,不要使用圆括号。如Stock second(),表示返回Stock对象的函数。
使用构造函数为已存在的对象赋新值时,是通过让构造函数创建一个新的临时的对象,然后将其内容复制给已存在的对象来实现的。随后程序调用析构函数,以删除该临时对象
2. const成员函数
const关键字放在括号后面
如果对象声明为const,则只能调用const的成员函数
3. this 指针
this指针为调用它的对象的地址
如果需要调用整个对象,则可以使用*this
4. 对象数组
Stock stocks[N] = { Stock(arg1, arg2,……), Stock( ), …… }
初始化过程:(1) 使用默认构造函数创造数组元素
(2) 花括号中调用的构造函数将创建临时对象
(3) 将临时对象的内容复制到相应的元素中
因此要创建类对象,这个类必须有默认构造函数
5. 作用域为整个类的常量
(1) 枚举
class Classname{
private:
enum{ len = 30 };
}
使用这种方式不会创建类数据成员,所有对象中都不包含枚举,在代码中遇到它时,编译器将使用30来替代它
(2) static
class Classname{
private:
static const int len = 30;
}
该常量将与其他静态变量存储在一起,而不是存储在对象中,因此只有一个len常量,被所有Stock对象共享。
只能声明整数或枚举的静态常量,不能存储double常量
- C++ primer plus 第10章 对象和类
- C++ Primer Plus 第10章 对象和类
- 【《C++ Primer Plus》读书笔记】第10章 对象和类
- c++ primer plus 第10章 类和对象
- c primer plus第10章总结:数组和指针
- C++ Primer Plus 第六版 第10章 对象和类
- 【读书笔记:C++ primer plus 第六版 中文版】第10章 对象和类
- C primer plus第10章(指针)习题
- C++primer plus第9-10章笔记
- C.Primer.Plus(第六版)第10章 编程练习
- C primer plus第11章(字符串和字符函数)习题(10选择排序)
- C Primer Plus 第10章 数组和指针 编程练习
- C primer plus第12章(存储类、链接和内存管理)
- C primer plus第12章(存储类、链接和内存管理)习题
- C++ Primer Plus 第12章 类和动态内存分配
- C Primer Plus第12章 存储类、链接和内存管理随笔
- C Primer Plus 第12章 存储类、链接和内存管理
- c primer plus第12章总结:存储类、连接和内存管理
- 友员函数与类内函数自定义函数的对比
- 爸爸 想点开心的事
- C++ primer plus 第9章 内存模型和名称空间
- 项目开发中IE浏览器上传图片报错的解决办法!
- Android 版本动态判断
- C++ primer plus 第10章 对象和类
- The Meta-Object System(Qt5)
- C++ primer plus 第11章 使用类
- Preference学习总结
- CF 292C Beautiful IP Addresses
- C++ primer plus 第12章 类和动态内存分配
- 对象深拷贝和浅拷贝
- Java JDBC连接三种数据库
- 单任务程序典型架构