C++ Primer知识系列五:对象和类
2017-11-23 16:57
211 查看
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,没有声明返回类型和参数。
相关文章推荐
- 【脚本语言系列】关于Python基础知识对象自省,你需要知道的事
- 【脚本语言系列】关于Python基础知识对象变动,你知道的事
- PHP基础知识系列:面向对象基础
- 翻转设计模式系列——第一部分--面向对象基础知识(1)--概览
- Smalltalk基础知识系列02:对象和消息之一切皆对象
- C# 基础知识系列之面向对象基础
- java基础知识系列---面向对象思想的理解
- Smalltalk基础知识系列03:对象和消息之消息种类
- .net知识和学习方法系列(十五)类型,对象,堆栈和托管堆
- C++ Primer知识系列四:内存模型和名称空间
- PHP基础知识系列:对象串行化serialize与unserialize
- .net知识和学习方法系列(十五)类型,对象,堆栈和托管堆
- Smalltalk基础知识系列04:对象和消息之组合消息
- .net知识系列之二:(net内置对象request,reponse,server,session,cookie,application,viewstate)
- C++ Primer知识系列二:控制语句
- Smalltalk基础知识系列05:对象和消息之优先级
- C++ Primer知识系列一:预备知识、数据及基本类型
- 知识学习——Java对象的生命周期
- Libgdx专题系列:对象篇源码分析 Sprite