c++剖析
在河之洲
这个作者很懒,什么都没留下…
展开
-
从编译器的辅助信息看c++对象内存布局
编程cpp预知识本文的内容使用的是32位的编译器编译出的结果,可以打印出类的内存布局信息DevCPP IDE这个IDE是我比较喜欢的windows下的cpp的IDE之一,它有一个工具->编译选项,可以选择编译器类型,也可以在编译选项中加入一些信息,为了能够输出内存布局信息,我在编译时加入以下命令--std=c++11 -fdump-class-hierarchy -f...原创 2019-11-12 11:58:34 · 799 阅读 · 0 评论 -
cpp11新特性详解与应用
以下是我最近几个星期学习c++11做的一些记录,包括收集的一些信息,整理的相关概念和写的一些测试代码。具体相关代码我写了24个cpp文件,托管在来github上面cpp11,记录一下。Lambda表达式构成为了描述一个lambda,你必须提供: 它的捕捉列表:即(除了形参之外)它可以使用的变量列表(”[&]” 在上面的记录比较例子中意味着“所有的局部变量都将按照引用的方式进行传递”)。如果不需要捕原创 2016-08-08 14:37:39 · 3676 阅读 · 0 评论 -
由底层和逻辑说开去——c++之类与对象的深入剖析
类是什么,对象是什么, 这两个问题在各个c++书里面都以一种抽象的描述方式,给了我们近乎完美的答案,然后我好像就知道什么是类什么是对象了,但是当扪心自问,类在哪儿,对象在哪儿,成员方法在哪儿,成员变量在哪儿的时候,这些定义大概只能给出一个同样抽象的答案。 其实很大程度上我们不知道问题的答案的原因是我们没有弄清楚我们的问题究竟是什么. 类和对象是拥有一堆有访问权限的成员变量和成员方原创 2013-08-17 22:58:16 · 1240 阅读 · 2 评论 -
由底层和逻辑说开去 —— 内存对齐机制深入剖析
在我的博客 由底层和逻辑说开去--c++之引用的深入剖析 里面提到内存对齐机制,我觉得这个有点意思,但是却不能仅从汇编层面就分析出个所以然来,因此就从inter的cpu 对内存访问路线的角度分析分析。 对于内存对齐 我们可以提出的问题从逻辑层面讲,就是内存对齐有什么意义,从底层来讲就是cpu怎么访问内存; 首先这个内存对齐机制是比较复杂的,百度一下很多人的理原创 2013-11-26 14:24:02 · 1120 阅读 · 0 评论 -
由底层和逻辑深入剖析c++系列
在2013年大二暑假,我在学完汇编之后又学了一遍c++,准备用汇编反编译一下c++来了解其语言运作的底层奥秘,因此准备写一系列的文章,但是由于时间关系,只写了三篇。现在看这些文章,虽然有的地方写的不成熟,但是整体很是相当有深度的,整理在这里方便后期更新。由底层和逻辑说开去–c++之引用的深入剖析由底层和逻辑说开去——c++之类与对象的深入剖析由底层和逻辑说开去 —— 内存对齐机制深入剖析关于原创 2015-06-03 15:15:59 · 1457 阅读 · 0 评论 -
由一段代码说开去系列
我在2012年底大二寒假和春节的时候,在博客园上总结了STL库的粗浅用法和c++的一些技巧,写成一个系列的博文。后来搬家到CSDN博客,也把这个系列搬了过来,过了两年多再来看这个系列,虽说写的很初级,但是里面的一些c++编码风格和技巧还是值得借鉴的。所以定期整理自己的博客还是很有必要的,这样可以方便管理。 由于申请专栏太磨蹭了,因此写成一个系列文章放在自己添加的栏目系列文章区,方便以后的查看,同时原创 2015-06-03 15:02:57 · 923 阅读 · 0 评论 -
替换空格
以前我总是通过文件来输入测试用例,但是等到再看代码的时候总是不知道关键的步骤在哪里,也不知道是哪个数据出错了;用下面这种方法很方便;一本书有言道“如果应聘者是先写单元测试用例,再写解决问题的函数,我相信面试官定会对你刮目相看,因为能做到测试在前、开发在后的程序员实在是太稀缺了,他会毫不犹豫地抛出绿色的橄榄枝。#include #include string.h>//不要只顾原创 2015-05-08 12:02:08 · 392 阅读 · 0 评论 -
由底层和逻辑说开去--c++之引用的深入剖析
在学c++的时候 我遇到的第一个问题就是这个引用,引用是什么东西,我的c++启蒙教科书是c++ primer plus,这本书上说的是:引用是已定义变量的别名,可以使用这个引用来表示这个变量;每当看到这句话的时候 我就有一种似懂非懂的感觉,其实还是不懂, 这句话说的意思是说引用是个名字吗,那么引用占多大内存呢,我把这章从头看到尾 可惜对此只字不提, 由此可见写书者的诚意(至少我看不到), 本文原创 2013-08-16 00:58:01 · 1235 阅读 · 5 评论 -
C++知识点
l 基础知识:c++的基础知识:面向对象的特性、构造函数、析构函数、动态绑定等,还有常见的设计模式、UML图 l C++知识点:sizeof l C++知识点:复制构造函数, l C++推荐书目Effective c++ 适合在面试之前突击c++,该书提到的问题也是面试官喜欢问的问题。C++ primer 全面了解c原创 2015-05-08 12:02:13 · 562 阅读 · 0 评论 -
二维数组作为参数传递
l 二维数组题的思维收获这个算法跟数据结构没关系,主要是逻辑思维看图思考利用的是数据之间的关系;多多举例具体化尝试,把复杂的问题具体化,分析那种情况,时间复杂度低。先有思路,再写代码。代码贴近自己的思维。l 二维数组处理的代码收获在c++中将二维数组当作参数的时候,必须指明所有维数大小或者省略第一维。但是我们在写程序的时候经常会遇到各个维数都不固定的情况,我们完全可以不把它当作一个原创 2015-05-08 12:02:11 · 537 阅读 · 0 评论