访问控制和继承
public: 公有类型
private: 私有类型
protected: 保护类型
当一个类的成员定义为public,就能够在类外访问,包括它的派生类。
当一个成员定义为private,它仅能在类内访问,不能被它的派生类访问。
当一个成员定义为proteced,它仅能在类内访问,但是能被它的派生类访问。
当一个成员没有指定访问说明符时,默认为private。
...
分类:
编程语言 时间:
2014-07-25 11:16:01
阅读次数:
314
《C++ Primer Plus》学习笔记10
第16章 string类和标准模板库
主要内容:
1)标准的C++string类
2)auto_ptr模板
3)标准模板库(STL)
4)容器类
5)迭代器
6)函数对象
7)STL算法
1、string类
1)构造字符串
//初始化为常规的C-风格的字符串
string one ("Lottery Winner!...
分类:
编程语言 时间:
2014-07-24 10:35:46
阅读次数:
465
转换和继承,虚函数
Understanding conversions between base and derived classes is essential to
understanding how object-oriented programming works in C++.
理解基类和派生类之间的转换是必不可少的 理解面向对象编程在。
Like built-i...
分类:
编程语言 时间:
2014-07-24 10:26:53
阅读次数:
488
从今天开始,对C++常用技术做个总结。
参考书籍:《C++Primer》、《C++对象模型》、《设计模式》、《Windows核心编程》、《STL解密》。
1. static_cast等四个cast的具体意义
C++类型转换:隐式转换和显式转换。
显式转换:static_cast、dynamic_cast、reinterpret_cast、const_cast。
1.1...
分类:
编程语言 时间:
2014-07-24 10:26:20
阅读次数:
249
一、vector的特性vector其中一个特点:内存空间只会增长,不会减小,援引C++ Primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素时,为了满足连续存放这个特性,都需要重新分配空间、拷贝元素、撤销旧...
分类:
其他好文 时间:
2014-07-23 15:14:06
阅读次数:
221
《C++ Primer Plus》学习笔记9
第15章 友元、异常和其它
主要内容:
1)友元类
2)友元类方法
3)嵌套类
4)引发异常、try块和catch块
5)异常类
6)运行阶段类型识别(RTTI)
7)dynamic_cast和typeid
8)static_cast、const_cast和reiterpret_cast
1、对于Remote对象的TV...
分类:
编程语言 时间:
2014-07-23 13:31:18
阅读次数:
289
面向对象编程概述
继承(Inheritance)
class Quote
{
public:
Quote(){cout<<"Quote的构造函数!"<<endl;}
string isbn() const {cout<<"Quote的isbn()调用!"<<endl; string s="Quote,isbn"; return s;}
virtual double ...
分类:
编程语言 时间:
2014-07-23 13:18:16
阅读次数:
314
1.再说智能指针 1.1 为什么要用智能指针?对于一个指针,它指向一个动态分配内存的对象,若同时有多个指针指向该对象,那么当我们delete的时候,就会出现delete 一个无效内存的错误,因为该对象已经被delete过了,所以这就造成了错误。针对这一情况,我们想到,new 和 delete 必须....
分类:
编程语言 时间:
2014-07-23 11:36:26
阅读次数:
308
《C++ Primer Plus》学习笔记8
第13章 类继承
主要内容:
①is-a关系继承
②如何以公有的方式从一个类派生到另一个类
③保护访问
④构造函数成员初始化列表
⑤向上和向下强制转化
⑥虚拟成员函数
⑦早期(静态)联编和晚期(动态)联编
⑧抽象基类
⑨纯虚函数
⑩何时以及如何使用公有继承
1、一个简单的基类
从一个类派生出另一个类时候,原始类称...
分类:
编程语言 时间:
2014-07-22 22:39:14
阅读次数:
246
避免含糊转换
参数匹配和相互转换
struct B;
struct A
{
A()=default;
A(const B&) //吧B负责给A,拷贝构造函数
{//嘿,这里我有点明白了,只要 后面调用了这个函数,那么这个函数就得有定义
//不能只声明不定义
cout<<"调用了A(const B&)转换!"<<endl;
}...
分类:
编程语言 时间:
2014-07-22 14:43:26
阅读次数:
297