随笔分类 -  C++

摘要:自从你进入程序员的世界,就开始照着书本编写着各种helloworld,大笔一挥: printf("Hello World!\n"); 于是控制台神奇地出现了一行字符串,计算机一句温馨的问候将多少年轻的骚年们引入了这个比58同城还神奇的世界......今天的旅行从这里开始:#include int main(){ float a = 0.5; printf("float a is %f\n",a); return 0;}第一步:进入调试,我们首先进入了printf.c中的代码: 1 int __cdecl printf ( 2 const char *fo 阅读全文
posted @ 2013-10-02 00:16 XiaoH在博客园 阅读(4963) 评论(15) 推荐(4) 编辑
摘要:也是好久不写了,忙着写报告、忙着这这那那的破事,其实很多时候觉得作为一个程序猿甚至只是一个IT行业相关的人,能够安心地、思路不被打乱地吃一本书或是写一段令自己满意的代码是一件多么幸福的事情。直奔主题吧,C++的设计可谓是博大精深,有许多人因为这样那样的原因吐槽C++,然而在Inside The C++Object Model一书中,作者Stanley B.Lippman展示了C++的一些看似令人费解的设计的原因,相信在了解这些原因以后,某些对C++存有偏见的人能够理性地看待C++的设计思想。这篇就主要记下最近的几点收获吧。 1.先来讨论第一个关于继承的小问题: 给定两个类,class ... 阅读全文
posted @ 2013-06-12 03:27 XiaoH在博客园 阅读(476) 评论(2) 推荐(0) 编辑
摘要:还是关于C++对象模型,前一篇读书笔记中涉及到了静态成员变量的问题,后来发现需要思考的东西还是有很多的,下面便一一道来。 首先,类中的static member在计算类的大小时并不计算在内,举例如下,原因是什么呢?class X{public: int data; static int num;};sizeof(X) = 4;View Code 大部分人应该知道,static member相当于是全局变量,而全局变量是存储在静态区里的,所以和类或者对象是相分离的,因此在计算sizeof(X)时就不会计算在内。既然是static member是全局变量,那么不管程序中产生多... 阅读全文
posted @ 2013-05-27 21:47 XiaoH在博客园 阅读(536) 评论(0) 推荐(0) 编辑
摘要:自己对于C++的理解一向都不太深入,看到貌似许多牛人都读过这本Inside The C++ Object Model,似乎深入了解C++必须读这本书,于是决定啃一下。到手当天看了下目录就知道这绝对是本好书。很多C++的书不知道是出于什么目的,要么不想讲清楚,要么就是讲不清楚,总之根本就没有将C++的一些机制写出来,即使写出来也有很多具有二义性,让人完全不知所措。 好了,闲话少说。之所以C++有许多很难理解的东西,原因之一就是C++背着我们做了太多的事情。这是我拿到这本书之后的第一反应。 第一个解决的问题就是C++对象模型。C++对象模型究竟是什么样子,反正我在看这本书之前完全没有概念,... 阅读全文
posted @ 2013-05-23 22:49 XiaoH在博客园 阅读(876) 评论(0) 推荐(0) 编辑
摘要:所谓隐式类型转换,就是定义的不同类型的数据在运算时,由编译器自行转换撑同一数据类型后再进行运算,而完全无需程序员介入的过程。很多时候在笔试面试时可能被问到这样一些类似的问题,比如:1 int a = 0;2 a = 3.1415926+3;3 cout<<a<<endl;4 5 输出是什么? 当然这是小儿科,很直白的问法,一般都能反应过来,输出为6,因为在计算时,首先编译器将3转换为double类型,然后执行浮点数加法操作,得到6.1415926;又因为变量a为整型,这是无法改变的,所以编译器只能丢失一部分数据,从而将6赋值给a。 可是有时候就不那么直接了,比如下面这道 阅读全文
posted @ 2013-03-17 14:52 XiaoH在博客园 阅读(1616) 评论(4) 推荐(1) 编辑