C++
文章平均质量分 91
程小二
一个正派但不正经的程序员
展开
-
C++静态库与动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可...转载 2016-10-20 09:50:56 · 10272 阅读 · 0 评论 -
c/c++的堆与栈 与数据结构的堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(stati...转载 2016-10-19 16:53:33 · 19904 阅读 · 0 评论 -
深入理解C++的new
“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{...转载 2016-10-19 12:48:34 · 16987 阅读 · 2 评论 -
为什么基类指针和引用可以指向派生类对象,但是反过来不行?
基类指针和引用BaseClass *pbase = NULL; DerivedClass dclass; pbase = & dclass; 基类指针和引用可以指向派生类对象,但是无法使用不存在于基类只存在于派生类的元素。(所以我们需要虚函数和纯虚函数)原因是这样的:在内存中,一个基类类型的指针是覆盖N个单位长度的内存空间。 当其指向派生类的时候,由于派生类元素在内存中堆放是:前N个是基类转载 2016-08-10 19:32:27 · 13956 阅读 · 5 评论 -
学习c++的50条建议
1.把C++当成一门新的语言学习(和C没啥关系!真的); 2.看《Thinking In C++》,不要看《C++编程思想》(C++编程思想,翻译的非常差); 3.看《The C++ Programming Language》(这本东西有影印板的)和《Inside The C++ Object Model》 ,不要因为他们很难而 我们自己是初学者所以就不看; 4.不要被VC、BCB、...原创 2016-08-10 10:52:46 · 9226 阅读 · 3 评论 -
strcat函数用法的一点看法
最近在刷题时碰到了strcat这个函数,一开始没怎么理解它的用法,出了错,现在写点自己的理解吧。 首先来看两个小程序代码一:#include<iostream>using namespace std;int main(){char *s="abcd";char *c="efgh";strcat(s,c);cout<<s;return 0;} 代码二:int main()原创 2016-07-17 20:20:50 · 26615 阅读 · 3 评论 -
c++中this指针的用法详解
为什么引入this指针? 最简单的应用场景就是:当我们在类中定义了一个变量,同时在类成员函数中定义了同一变量时,也就是说变量名重复时,但是我们想使用类中定义的变量,这个时候我们该怎么办呢?这个时候就是this指针大显身手的时候了。为此我们引入this指针的概念。1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this...原创 2016-05-31 11:15:13 · 34092 阅读 · 3 评论 -
关于内存对齐的问题
在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的 “管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解 更加底层的秘密,“内存对齐”对你就不应该再透明了。一、内存对齐的原因大部分的参考资料都是如是说的:1、平台原...转载 2016-05-31 21:33:31 · 8206 阅读 · 0 评论