C++实践中的问题
sicofield
这个作者很懒,什么都没留下…
展开
-
派生类中的成员初始化列表
关于成员初始化列表的问题,在我的《Effective C++笔记1》中的Item 4有相关的解释。这里需要指明的一点是:在类的成员初始化列表中只能初始化其自己的成员,而不能初始化继承自其基类的成员!如下代码//策略基类class COperation{public: int m_nFirst; int m_nSecond; virtual double GetRes原创 2013-03-01 15:14:15 · 1782 阅读 · 0 评论 -
malloc与new的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的转载 2013-04-11 21:43:55 · 1159 阅读 · 0 评论 -
静态变量与静态成员函数
函数调用的结果不会访问或者修改任何对象(非static)数据成员,这样的成员声明为静态成员函数比较好。且如果static int func(....)不是出现在类中,则它不是一个静态成员函数,只是一个普通的全局函数,只不过由于 static 的限制,它只能在文件所在的编译单位内使用,不能在其它编译单位内使用。 静态成员函数的声明除了在类体的函数声明前加上关键字static,以及转载 2013-04-11 21:49:23 · 1148 阅读 · 0 评论 -
C操作符优先级
C语言操作符优先级优先级运算符含 义要求运算对象的个数结合方向1()[]->.圆括号下标运算符指向结构体成员运算符结构体成员运算符 自左至右2!逻辑非运算符1(单目运原创 2013-04-19 16:08:32 · 1570 阅读 · 0 评论 -
restrict关键字
APUE中经常能看到指针参数加上了restrict关键字。今天百度了下,到底有什么作用。1.简介 restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,能帮助编译器进行更好的优化转载 2013-08-23 21:31:15 · 1433 阅读 · 0 评论 -
数值型别的极值
1.引言 在阅读别人的代码的时候,经常遇到最大的int值赋值为0x7FFFFFFF,最小的int值赋值为0x80000000。 最大值易于理解,但是最小值为什么是0x80000000? 首先注意,当给变量按16进制赋值的时候,是按补码形式赋值的。但是有一个特例就是0x80000000,这个是最小的负数,因为负数比正数表示的范围多1,所以0原创 2013-06-03 16:37:28 · 1357 阅读 · 0 评论