随笔分类 -  认清C++语言

《认清C++语言》のrandom_shuffle()和transform()算法
摘要:1)STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的),函数原型如下:template<class RandomAccessIterator> void random_shuffle( RandomAccessIterator _First, //指向序列首元素的迭代器 RandomAccessIterator _Last //指向序列最后一个元素的下一个位置的迭代器 );template<class RandomAccessIterator, class RandomNumberGenerator> void random_shuf 阅读全文

posted @ 2010-09-07 15:36 android开发实例 阅读(900) 评论(0) 推荐(0) 编辑

《认清C++语言》のstd::stringstream和strstr
摘要:1)std::stringstream的定义如下:typedef basic_stringstream<char> stringstream;它是basic_stringstream模板在char类型上的一个特化,使用该类型需要包含头文件<sstream>.std::stringstream经常被用来将字符串和各种基本数据类型之间进行转换,功能类似于C标准库中的itoa和atoi函数,但std::stringstream能做的事情更多,我们就从下面这个实例代码来进行学习吧:#include <iostream>#include <sstream> 阅读全文

posted @ 2010-08-30 20:54 android开发实例 阅读(923) 评论(0) 推荐(0) 编辑

《认清C++语言》---继承而来的非虚函数和缺省参数
摘要:======================继承而来的非虚函数======================假设类Derive公有继承自类Base,且类Base定义了一个公有非虚成员函数func:class Base{public: void Func(); ...};class Derive : public Base{ ...}Derive de; //定义一个派生类对象Base *pb = &de; //得到一个指向de的Base指针pb->Func(); //通过指针调用Func()Derive *pd = &de; //得到一个指向de的Derive指针pd-&g 阅读全文

posted @ 2010-06-25 10:00 android开发实例 阅读(443) 评论(0) 推荐(0) 编辑

《认清C++语言》---接口继承和实现继承
摘要:作为类的设计者,有时希望派生类只继承成员函数的接口(声明);有时希望派生类同时继承函数的接口和实现,但允许派生类改写实现;有时则希望同时继承接口和实现,并且不允许派生类改写任何东西。class ASCEShape{public: virtual void draw() const = 0; //纯虚函数,因此ASCEShape成为一个抽象类 virtual void error(const string& msg); //一般虚函数 int objectID() const; //非虚函数 ...};class ASCERectangle : public ASCEShape {... 阅读全文

posted @ 2010-06-24 22:52 android开发实例 阅读(690) 评论(0) 推荐(0) 编辑

《认清C++语言》---缺省构造函数
摘要:构造函数能够初始化对象,而缺省构造函数(指没有参数的构造函数)则可以不利用任何在建立对象时的外部数据就能初始化对象。这带来正反两面的效果:正面效果是:一些行为特性与数字相仿的对象被初始化为空值或不确定值是合理的,还有例如链表、哈希表、图等数据结构也可以被初始化为空容器;反面效果是:对很多对象来说,不利用外部数据进行完全的初始化是不合理的,比如一个输入姓名的通讯录对象是没有意义的。理想情况下,无需任何数据就可以建立对象的类可以包含缺省构造函数,而需要初始数据来建立对象的类则不能包含缺省构造函数。但实际上必须考虑更多因素。当一个类没有缺省构造函数时,使用上会存在一些限制:考虑下面的类:class 阅读全文

posted @ 2010-06-23 22:35 android开发实例 阅读(1122) 评论(0) 推荐(0) 编辑

《认清C++语言》之--内存管理
摘要:内存分配方式主要有三种:1)从静态存储区域分配;内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,例如全局变量、static变量;2)在栈上创建;执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限;3)从堆上分配,即动态内存分配。使用malloc或new申请,free或delete释放。常见内存错误及其对策:1)内存分配未成功,但使用了它。常用的解决办法是:在使用内存之前检查指针是否为NULL。如果指针p是函数的参数,那么在函数入口处用assert(p!=NULL 阅读全文

posted @ 2010-05-26 20:26 android开发实例 阅读(252) 评论(0) 推荐(0) 编辑

《认清C++语言》---谈谈const
摘要:const类型修饰符可以:1) 用来说明符号常量和常数组(必须同时进行初始化,以后不能再更新)C++中,用关键字const修饰的标识符称为符号常量,或称为const变量。常量在使用前必须先定义同时初始化 ,例如:const double pi = 3.1415926或double const pi = 3.1415926;通常情况下const同预处理器#define一样只是将所赋值存入编译器的符号表中(符号表仅仅在编译时存在,在编译过程中编译器将程序中的名字与它在符号表中对应的数值作简单的替换),在使用时进行值替换,并不为const创建存储空间。C++中const默认为内部连接(C中const 阅读全文

posted @ 2010-04-18 12:53 android开发实例 阅读(351) 评论(0) 推荐(0) 编辑

《认清C++语言》---也谈C++关键字explicit
摘要:c++中的explicit关键字用来并且只能用来修饰类的构造函数,表明该构造函数是显式的,“显式”的意思是说创建类对象时必须写出构造函数的名称,相对的,“隐式”指的是创建类对象时不必写出构造函数名,只需根据构造函数形参类型指定实参,由编译器进行形参类型到类类型的隐式转换。《C++ Primer》指出:可以用单个实参来调用的构造函数,它自身定义了从形参类型到类类型的一个隐式转换。也就是说,如果c++类的构造函数可以只传一个实参来调用(构造函数的形式参数实际上可能不止一个,但除了传入实参的那个参数外,其他的参数都有默认值),那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转 阅读全文

posted @ 2010-04-14 13:45 android开发实例 阅读(285) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示