《C++ Primer》Chapter 7 [类]】的更多相关文章

前言 在C++中,我们使用类定义自己得数据类型/通过定义新的类型来反应待解决的题的各种概念,是我们更容易编写.调试和修改程序. 我们需要主要关注数据抽象的重要性.数据抽象能帮助我们将对象的具体实现与对象能执行的操作分离开来 类的基本思想是数据抽象和封装. 数据抽象是依赖接口和实现分离的编程&&设计技术:封装实现了类的接口和实现的分离. 笔记 因为老师最近讲的课其实在我看来跨度特别大,每个知识点都只是涉及,好像只挑重点讲,我看这章的时候还有很多不懂得地方需要去翻前面的(直接跳过了前面的章节,…
目录 存储类 作用域 链接 存储时期 自动变量 寄存器变量 具有代码块作用域的静态变量 具有外部链接的静态变量 extern关键字 具有内部链接的静态变量 多文件 存储类 C为变量提供了5种不同的存储类型: 自动 寄存器 具有代码块作用域的静态 具有外部链接的静态 具有内部链接的静态 不同角度描述变量: 存储时期 变量在内存中保留的时间 变量作用域(Scope)以及它的链接(Linkage) 变量的作用域和链接一起表明程序的哪些部分可以通过变量名来访问该变量 不同的存储类提供了变量的作用域.链接…
When I start reviewing, I thought Chapter is useless. Because the title is "Getting Start" . I thought that is useless. But I found something I miss before, so I review it and found I understand something that confused me. So every parts is usef…
7.1 定义抽象数据类型 定义和声明成员函数的方式与普通函数差不多,成员函数的声明必须在类的内部,定义可以在类的内部或外部.作为接口组成部分的非成员函数的声明和定义都在类的外部. 定义在类内部的函数是隐式的 inline 函数. 当我们调用成员函数时,实际上是替某个对象调用它.成员函数通过 this 的隐式参数来访问调用它的那个对象. 任何对类成员的直接访问都被看作 this 的隐式引用. this 是一个常量指针,不允许改变 this 保存的地址. 使用 const 的成员函数被称作常量成员函…
1.在类内部,声明成员函数时必需 的,而定义成员函数则是可选的.在类内部定义的函数默认为inline. 2.const成员函数不能改变其所操作的对象的数据成员.const必须同时出现在声明和定义中,若只出现其中一处,就会出现一个编译时错误. 3.显示指定inline成员函数 在类内部定义的成员函数默认是inline.显示指定inline成员函数的办法有3种: (1)类定义体内部指定inline,作为其声明的一部分. (2)类定义体外部的函数定义上inline (3)类定义体内和外均指定为inli…
1.嵌套类是一个独立的类,与外层类基本没什么关系.特别的是,外层类的对象和嵌套类的对象是相互独立的.在嵌套类的对象中不包含任何外层类定义的成员,在外层类的对象中也不包含任何嵌套类定义的成员. 2.嵌套类在其外层类中定义了一个类型成员.和其他成员类似,该类型的访问权限由外层类决定. class external { public: int m_id; // internal里无法使用这个变量 class internal; }; class external::internal { public:…
1.C++语言并未定义任何输入输出语句,取而代之,包含了一个全面的标准库来提供IO机制. 由上图能够知道,I/O操作的基类是ios_base,各个类的用途例如以下: <iostream> istream    从流中读取数据 ostream   向流中写数据 iostream  对流进行读写操作.派生于istream和ostream <fstream> ifstream    从文件里读取数据.派生于istream ofstream   向文件里写数据,派生于ostream fst…
1 - Class Members Revisited 2 - Functions That Return *this 3 - Class Types 4 - Friendship Revisited [Class Members Revisited] 1.Defining a Type Member: #include <iostream> #include <string> using namespace std; class Screen { public: using po…
动态内存:之前的程序使用对象有着严格定义的生存期,会自动销毁.C++支持动态分配对象,动态分配对象的生存期和他们在哪里创建是无关的,只有当显式的被释放,这些对象才会销毁.标准库定义了智能指针对象可以自动释放内存.new在动态内存中分配空间并且返回一个指向该对象的指针,delete接受一个动态对象的指针销毁该对象并释放相关的内存使用动态内存的原因:1.程序不知需要多少对象2.程序不知道对象类型3.程序需要在多个对象之间共享数据————允许多个对象共享相同状态 忘记释放内存会导致内存泄漏,释放了被指…
拷贝 赋值 销毁 拷贝构造函数 如果一个构造函数第一个参数是自身的引用,而且任何额外参数都有默认值,则此构造函数是拷贝构造函数拷贝构造函数的第一个类型必须是引用:如果参数不是引用类型,那么调用不会成功——为了调用拷贝构造函数我们必须拷贝他的实参,而拷贝实参又要调用拷贝构造函数 如果没有类定义拷贝构造函数,编译器会自动定义一个,和成默认构造函数不同,即使我们定义了其他构造函数,编译器也会为我们合成一个拷贝构造函数.对某些类来说,合成构造函数用来阻止我们拷贝该类类型的对象,而一般情况,合成的拷贝构造…