C++
文章平均质量分 95
imyfriend
这个作者很懒,什么都没留下…
展开
-
C++ 初始化和赋值辨析
一、初始化 :用于为变量指定初始值,对于类而言,指的是构造函数。 备注:如果声明中有初始化,那么它其实是定义。 例如: externdouble pi = 0; 此时pi是定义,所以如果这样用的话会出错: extern double pi = 0; extern double pi = 1; // 2个extern且初始化默认构造原创 2012-12-18 10:25:17 · 2181 阅读 · 0 评论 -
小问题大思考之C++临时对象
C++中有这样一种对象:它在代码中看不到,但是确实存在。它就是临时对象---由编译器定义的一个没有命名的非堆对象(non-heap object)。为什么研究临时对象?主要是为了提高程序的性能以及效率,因为临时对象的构造与析构对系统性能而言绝不是微小的影响,所以我们应该去了解它们,知道它们如何造成,从而尽可能去避免它们。临时对象通常产生于以下4种情况:类型装换按值传递按值返回对原创 2013-10-20 22:12:29 · 6737 阅读 · 4 评论 -
小问题大思考之C++里的inline函数
inline,一个神奇的关键字。有了它,函数,你同时就可以获取函数和宏的优点。inline定义的函数,比起没有inline的函数来说,没有执行函数调用所带来的负担(对此可参见《C++程序的内存布局》),因此它是高效率的;比起宏来,它具有函数的可预期行为和参数类型检验。宏的行为难于预期,我们看看下面这个宏定义#define max(a, b) ( (a) > (b) ? (a) : (b)原创 2013-10-13 11:51:07 · 9488 阅读 · 7 评论 -
记C++类成员访问权限符二三事
1、对于虚拟函数,子类里的成员访问权限符可以和父类不同。即对于基类的函数func如果是public的,子类中它可以是private的。class Base {public: Base(); virtual ~Base();public: virtual void func(void); // 公有};class Derived : public Base {pub原创 2013-05-01 21:49:44 · 1095 阅读 · 0 评论 -
C++ 指针、数组和引用辨析
一、指针:内容是指示一个内存地址的变量;类型是指示编译器怎么解释指针内容指向地址中的内容,以及该内存区域有多大;例子:int i = 0;int * pi = &i;printf(“pi = %x \n”, pi); // 打印pi的内容: 0x2000printf(“*pi= %d \n” , *pi); // 打印pi指向地址中的值: 5printf原创 2012-12-20 08:19:56 · 2252 阅读 · 1 评论 -
C++程序编译过程简介
编译过程主要分为4个过程 1) 编译预处理 预编译程序完成的工作,可以说成是对源程序的“替换”工作。经过这个过程,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。宏定义命令;例如#define条件编译指令;例如#ifdef头文件包含指令;例如#include特殊符号;例如__LINE__,__FILE__预处理模块;例如#pragma2) 编译、优化阶段:原创 2013-03-17 17:53:18 · 7522 阅读 · 1 评论 -
C++运算符之类型转换
一、const_cast:只影响类型修饰符const,volatile用法:const_casttype_id>(expression) 该运算符用来修改类型的const或volatile属性。除了const或volatile修饰之外,type_id和expression的类型是一样的。常量指针被转化成非常量指针,并且仍然指向原来的对象;常量引用被转换成非常量引用,并且仍原创 2013-04-05 07:25:17 · 2256 阅读 · 1 评论 -
C++程序的内存布局
对任何一个普通C++程序来讲,它都会涉及到5种不同的数据段。常用的几个数据段种包含有“程序代码段”、“程序数据段”、“程序堆栈段”等。不错,这几种数据段都在其中,但除了以上几种数据段之外,进程还另外包含两种数据段。下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区。代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存种的镜像。代码段需要防原创 2013-01-14 08:28:52 · 8280 阅读 · 7 评论 -
C++函数参数小结
一、函数形参–指针参数和数组参数的区别作为函数形参的数组和指针可以互换 这种转换仅限于函数形参的声明这是一种便利,传递时数组会蜕变为指针,事实上数组从来没有传入过函数。例子:以下3个声明是等价的 void putValues(int *); void putValues(int[]); void putValues(int[10]);备注:数组长度不是参数类型原创 2013-01-14 08:29:33 · 4177 阅读 · 0 评论 -
C++ 声明和定义辨析
在进行c++培训时,发现有些概念对于初次接触c++的同事可能有点难于理解,所以这里做些总结,一方面方便同事阅读,另一方面也是对自己技能的一个总结。一、声明(declaration):用于向程序表明变量的类型和名字,是用来将一个object、function、class或template的类型和名字告诉编译器。由2部分组成:类型 + 标示符,标示符可以包含字符*、[ ]和(),表明这原创 2012-12-15 13:02:35 · 1625 阅读 · 0 评论 -
C\C++代码优化的27个建议
原文链接:http://www.apkbus.com/portal.php?mod=view&aid=8598转载 2014-06-23 08:41:17 · 876 阅读 · 0 评论