自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (1)
  • 收藏
  • 关注

原创 对C++中的类的静态数据成员和静态函数成员的认识

类包含数据成员和函数成员,它们都可以声明为静态成员。在声明数据成员的前面加上static就声明了一个静态数据成员,例如:static int a;就声明了一个具有静态生存期的静态数据成员,静态数据成员和普通数据成员的区别是普通数据成员只能用对象访问,而静态数据成员则可以通过类名和对象两种方式访问。静态数据成员又叫做类属性,因为这个数据成员是类拥有的,而不是某一个具体对象拥有。通过类名访问的方式

2014-11-30 23:08:10 763

原创 对C++中作用域和生存期的认识

作用域,顾名思义,就是作用的区域,分为函数原型作用域,局部作用域,类作用域和命名空间作用域。它们的作用范围按此顺序变大。生存期,顾名思义,就是生存的日期和时间,分为静态生存期和动态生存期,静态生存期有两种情况,1.命名空间作用域中的变量具有静态生存期,2.在局部作用域中用static声明的变量也具有静态生存期。除了这两种情况之外的变量都具有动态生存期。在局部作用域中声明的变量如果用stat

2014-11-30 22:27:56 1852

原创 对C++中函数原型作用域的理解

今天读到了有关作用域的一些知识,感觉有必要总结一些。作用域分为函数原型作用域,局部作用域,类作用域,命名空间作用域这几种。函数原型作用域是最小的作用域,它的作用范围最小,在函数的原型声明时的括号里面的形参的作用域就是函数原型作用域。举个例子:intadd(int a,intb);此函数中的a和b的作用域就是函数原型作用域,它们的作用范围仅限于这个括号中,出了这个括号就不管用了。还有

2014-11-23 22:50:16 2685 2

原创 浅谈C++中函数调用的底层机制

先来简单说一说栈指针和帧指针。栈指针就是用来存储栈顶的地址,帧指针是用来存储函数刚被调用时候的地址。举个例子:int add(int a,int b){  int c=a+b;  return c;}这是被调函数。int x=add( 5,7);这是主调函数的一个语句。接下来是主调函数的反汇编代码:8048459:  movl   $0x7,0x4(%e

2014-11-21 23:10:58 2261

原创 对栈指针和帧指针的认识

今天又读了有关栈指针和帧指针的知识,对它们的认识加深了。栈指针简单说就是栈顶的地址。帧指针就是栈帧的起始位置的地址。其中,栈帧中存有形参和局部变量等数据,并且这些形参和局部变量与帧指针有密切的联系,栈帧中的形参和局部变量相对于栈指针的位置是一定确定的,因此就可以通过栈指针的地址来定位这些形参和局部变量的地址。以上就是我对栈指针和帧指针的一些认识。

2014-11-17 22:33:20 2231

原创 浅谈寄存器的知识

大家可能会认为计算机在运行的过程中是这样工作的:CPU从内存中读取数据,然后进行操作。之前我也是这样认为的,但今天通过看有关寄存器的知识,发现其实并不是这样的。诚然,上述方式是一种方法,但却不是主要的方式,真实情况是这样的:内存主要是用来存储数据的,只有一小部分是通过上述方式进行的。而大部分的读写操作是通过寄存器来完成的。寄存器是在CPU内部的,顾名思义,既然有一个存字,那就说明了寄存

2014-11-17 22:22:18 1204

原创 在C++中类的对象作为函数形参在底层的实现机制

今天看了有关类的对象作为函数形参的实现的一些知识,下面谈一谈我的看法。大家可以想一下基本类型的数据作为函数形参在底层的实现:主调函数将实参压入运行栈中的传参区域,进行形实结合调用被调函数,调用完成后被调函数弹出运行栈,再调用下一个函数。类的对象作为形参的时候,也要用到运行栈,来看它的实现:首先将对象压入运行栈的传参区域,区别就在此产生,然后调用复制构造函数建立一个临时对象在传参区域,而基本

2014-11-16 22:26:06 1342

原创 浅谈C++中的运行栈的一些知识

今天又看了一遍有关运行栈的知识,在此,我谈谈我的想法。栈,顾名思义,就是客栈的意思(通俗来说)。就说明了它是临时歇息的地方,不是长久停留的地方。变量分全局变量和局部变量,全局变量自始至终有确定的内存地址,而局部变量却没有(部分原因是如果给局部变量分配内存空间的话,在它的生存期结束后(生存期相对于整个程序很短),内存不能释放,造成空间浪费,尤其是局部变量比较多时),那局部变量怎么办呢?这就引

2014-11-15 23:02:59 1631

原创 浅谈C++中变量的底层实现机制

今天又看了一遍以前的一些知识(变量的底层实现),加深了理解,在这里,我想谈几点认识。举个例子:int a;。先说一下代码,像这样的代码就称为源代码,而计算机能识别的是机器语言代码。在源代码层次,用变量名来区分变量,而在底层(机器代码),这些变量名就不能被计算机识别了,计算机区分它们是靠内存地址,每个变量都有一个地址,计算机要使用这些变量的话,就通过地址来找它们。在源代码层次,数据类型说

2014-11-15 22:21:17 942

原创 对C++中的类型转换的再认识

今天在看C++书的时候,读到了用类的构造函数进行类型转换的知识,我看了这个标题之后,就引起了我的好奇心,构造函数怎么能进行类型转换呢?之前学的基本数据类型的转换(包括隐性类型转换和显性类型转换),比如double(3),就是把原是int型的3强制转换成double型的数据。那么这个构造函数又是怎么进行类型转换的呢?带着好奇心的我便读了起来。到最后我总结了一下,千言万语汇聚成了一句话:类型转换的

2014-11-12 22:45:40 601

转载 有关C++中sizeof的知识

今天在看程序的时候,遇到了sizeof,往前翻了翻书,发现书上讲的有点儿笼统,就上网搜了搜,发现了一篇很好的文章,特记录下来。转载网址:http://blog.csdn.net/freefalcon/article/details/54839内容如下所示:0. 前向声明sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思

2014-11-11 22:25:35 583

转载 为什么C++会成功?

最近,我在看《C++编程思想》,里面提到了C++成功的七个原因。我将在这篇文章中进行简单的说明。       C++成功的原因是经济上的:转变到OOP(面向对象编程)需要代价,而转变到C++所花的代价较小。       C++的目的是提高效率。C++成功是因为它立足于实际:尽可能地为程序员提供最大便利。       1. 较好的C      C++堵塞了C语言中的一些漏

2014-11-11 22:04:30 701

原创 对C++中的构造函数的再次认识

今天解决了一个困扰我长达几个星期的问题,感觉很有成就感,于是记下这件事以资鼓励。就在几个星期之前,我在读C++的过程中读到了如下一段程序:#include  #include  using namespace std;  class Examinfo{      public:      Examinfo(string name,char grade):name(nam

2014-11-04 22:57:28 811

原创 有关今天读书的一些思考

今天在读C++的时候,读着读着遇到了

2014-11-03 22:32:22 620

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除