随笔分类 - c++
摘要:C++ STL中的remove和erase函数曾经让我迷惑,同样都是删除,两者有什么区别呢?vector中的remove的作用是将等于value的元素放到vector的尾部,但并不减少vector的sizevector中erase的作用是删除掉某个位置position或一段区域(begin, end...
阅读全文
摘要:一:基本内容1 类数据成员:用于存储与类对象相关联的状态成员函数:对数据成员进行操作类将接口与实现分离,接口指定了类支持的操作,操作的具体实现细节是类的设计者才需要了解2 类成员类成员可以是数据(数据成员)、函数(成员函数)、类型别名数据成员:类不能具有自身类型的数据成员,但是可以使指向自身类型的指...
阅读全文
摘要:1 标准库容器 顺序容器:vector、list、deque 容器适配器:stack、queue、priority_queue2容器元素类型约束: 容器元素类型必须支持复制和赋值,因为容器存放的都是元素的副本 容器的元素类型是类类型且该类型没有默认构造函数时,创建容器对象时必须提供形参列表3容器迭代...
阅读全文
摘要:1 istream、ostream类型,cin、cout、cerr是istream或ostream类型的具体的对象,>是操纵符 getline函数的参数是istream和string类型的两个引用形参 面向对象的标准库,3个头文件:iostream,fstream、sstream 对应的类型:ist...
阅读全文
摘要:参考:http://blog.csdn.net/jiangyi711/article/details/4890889#(三)成员函数类X中每一个非静态成员函数都会接受一个特殊的隐藏参数——this指针,类型为X* const该指针在后台初始化为指向成员函数工作于其上的对象在成员函数内,成员变量的访问...
阅读全文
摘要:C++为了支持多态性,采用了动态绑定和静态绑定相关概念:对象的静态类型:对象在声明时采用的类型,编译时确定对象的动态类型:目前所指对象的类型,在运行时确定class B{}class C : public B{}class D : public B{}D* pD = new D();//pD的静态类...
阅读全文
摘要:转自:http://blog.csdn.net/jiangyi711/article/details/4890889#(二 )成员变量前面介绍完了类布局,接下来考虑不同的继承方式下,访问成员变量的开销究竟如何没有继承:没有任何继承关系时,访问成员变量和C语言的情况完全一样:从指向对象的指针,考虑一定...
阅读全文
摘要:转自:http://blog.csdn.net/jiangyi711/article/details/4890889#一 类布局不同的继承方式将导致不同的内存布局1)C结构C++基于C,所以C++基本上兼容C。特别地,C++规范在“结构”上使用了和C相同的,简单的内存布局原则:成员变量按其被声明的顺...
阅读全文
摘要:转自:http://blog.csdn.net/haoel/article/details/1948051C++虚函数表解析陈皓http://blog.csdn.net/haoel前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的...
阅读全文
摘要:1 悬垂else来自于else语句搭配的if语句的二义性2 理解switch代码:switch(c){ case 'a': a++; case 'b': b++; default: x++;} 如果为'a',则a++,b++,x++都会被执行 如果为'b',则b+...
阅读全文
摘要:1 const对象默认为文件的局部变量(P50)a.cppconst int a = 1;b.cppextern int a;//undefined reference to "a"a.cppint a = 1;b.cppextern int a;//OKa.cppextern const int ...
阅读全文
摘要:string strs[] = {"one","one","two","three","three","four"};vector vs(strs,strs+6);unique(vs.begin(),vs.end());for(vector::iterator vi = vs.begin();vi!...
阅读全文
摘要:首先清楚两点:当类有动态分配内存的对象时,运行系统只销毁对象而不销毁内存(导致内存泄漏)---自定义析构函数对于动态分配内存的类,初始化(复制)和赋值的默认版本不能正确管理内存 ---自定义复制函数和赋值操作符考虑一个类有两个成员,几个静态分配内存的成员a,一个动态分配内存的指针成员p,p指向一个动...
阅读全文
摘要:类内声明friend ostream& operator &item);类外实现template ostream& operator &item){ os a(5);cout >&,store const&)'网上大部分的解决思路是GCC编译时通知链接器链接静态库libstdc++,或者直接用g...
阅读全文