C++ Primer知识系列五:对象和类
来源:互联网 发布:淘宝卖玩具怎么样 编辑:程序博客网 时间:2024/06/05 04:32
C++ Primer知识系列五:对象和类
面向对象编程特性:抽象、封装和数据隐藏、多态、继承、代码的可重用性。
1、类
class stock{ private://只能通过公共成员访问的类成员(数据隐藏) char company[30]; int shares; void set() {...} public://表示组成的公共接口的类成员(抽象) void acquire(const char* co); void buy(int num);};//封装:将抽象与实现分开void Stock::acquire(const char* co){...}void Stock::buy(int num){...}
内联函数:位于类声明中的函数定义;inline内联限定符。
类声明—>实现类成员函数—>创建类对象,通过”.”访问类成员函数
类的构造函数和析构函数
构造函数无返回类型,函数名称与类名相同,原型位于类声明的公有部分,声明对象时自动调用。默认构造函数:在声明对象时未提供显示初始值,用于创建对象的构造函数,在没有提供任何构造函数时,C++会自动提供默认构造函数,但若定义了构造函数,就必须提供默认构造函数:1) 给已定构造函数提供参数默认值;2) 通过函数重载来定义另一个构造函数。
析构函数:对象过期后,完成清洗工作。无返回类型,函数名称与类名相同。调用情况:创建的是静态存储类对象,在程序结束时自动调用;创建的是自动存储类对象,在程序执行完代码块时自动调用;通过new创建时,使用delete来释放内存时自动调用;创建临时对象,在结束使用时自动调用。
class className{ private: //私有成员 public: className();//默认构造函数 className(参数提供默认值); ~className();//析构函数};
类对象初始化后,赋新值时使用构造函数会导致在赋值前创建临时对象。
this指针:指向调用成员函数的对象。
2、使用类
运算符重载: opreator运算符(参数列表),限制:重载后的运算符必须至少有一个操作数是用户覅你故意的类型;使用运算符不能违反运算符原本的法则;不能创建新运算符;sizeof、. 、.* 、?:不能重载;=,(),[],->只能通过成员函数重载。
友元:函数成为类的友元,与成员函数相同权限,声明:friend 函数原型。
类的类型转换:构造函数用作自动类型转换(explicit可关闭这种特性);转换函数:operator type() const,意思是把类->type,没有声明返回类型和参数。
- C++ Primer知识系列五:对象和类
- 《C Primer Plus》 学习笔记系列之(五)
- C++primer初学者:对象和类的小应用
- C++Primer学习笔记------对象和类(1)
- C++Primer学习笔记------对象和类(2)
- C++ Primer知识系列四:内存模型和名称空间
- c++Primer,五,表达式
- C++Primer读书笔记(五)
- C++Primer笔记(五)
- 庖丁解牛<C++primer>系列一:引用和指针
- 庖丁解牛<c++primer>系列三:类型别名和自定义数据结构
- C++primer读书笔记6-类的细节知识
- C++ Primer知识系列二:控制语句
- C++ Primer知识系列三:函数基础
- C++primer学习:面象对象程序设计(1):定义基类和派生类
- C++primer学习:面象对象程序设计(4):继承类中的作用域和拷贝控制
- 【c++ primer】第十章 对象和类
- C++ primer 第十章 对象和类
- 简单的java爬取网站内容和url实例
- hudson自动化配置小结
- Linux 物理内存使用的一个问题
- UVA 11059
- CCF 201412-2 Z字形扫描
- C++ Primer知识系列五:对象和类
- java中创建对象的几种方式解析——不止只有New
- 2017.11.23笔记
- 上位机与三菱PLC通信
- Openresty最佳案例 | 第6篇:OpenResty连接Mysql
- mysql
- ConcurrentHashMap:实现线程安全的HashMap
- Android开发常用工具类
- C++随笔之-拷贝控制