C++
xld_hung
在这里好好交流,努力提高自己,和志同道合的伙伴们一块努力,为博客的发展和技术做出自己的贡献,希望在这里可以成长.
展开
-
C++中,自定义string类,实现字符串的赋值“=”和连接函数“+”
对于在C语言中,我们使用指针可以轻而易举的实现字符串的拷贝和连接等,在C++中,C在里面是完全兼容的,所以我们就可以在这里大展伸手,开始我们的C++的学习之旅,这篇文章我们实现自定义一个string类,实现字符串的赋值和连接,也就是C++里所谓的运算符重载;运算符重载是使用函数实现的,我们应该遵循函数的一些规则。 这里我说一下对于为什么进行运算符重载?我个人来看,大部分的运算符只适用于基本的数原创 2017-07-30 17:12:44 · 8370 阅读 · 1 评论 -
静态变量,局部变量,全局变量的区别
转自http://blog.csdn.net/w825828482/article/details/20526145(1)局部变量 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外时不能使用这些变量的,它们称为局部变量. 1.主函数main中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序转载 2017-08-01 20:13:38 · 521 阅读 · 0 评论 -
结构在内存中是如何存储的
一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。例一: #include using namespace std;转载 2017-08-13 16:43:14 · 450 阅读 · 0 评论 -
对于虚析构函数的理解
首先,对于虚析构函数,那就得说下构造函数和析构函数了。构造函数:进行初始化成员变量的函数。析构函数:在对象生命周期结束的时候,完成资源的回收和清理。对于虚析构,就是在析构函数前加virtual关键字,那么到底有什么作用呢? 防止内存泄露,定义一个基类的指针p,在delete p时,如果基类的析构函数是虚函数,这时只会看p所赋值的对象,如果p赋值的对象是派生类的对象,就会调用派生原创 2017-08-06 16:09:00 · 25533 阅读 · 6 评论 -
内联函数、宏函数、普通函数的区别
内联函数:inline 函数类型 函数名 (函数入参) 定义:用修饰符inline修饰的函数称为内联函数。 和普通函数的定义和声明相同。和普通函数相同会做类型检查,安全。 在编译的过程中,不是跳转到内联函数定义的地方去,而是将内联函数里面的代码拷贝到调用的地方去执行(嵌套到目标代码的调用的位置),节省时间,但是却增加了目标代码的代码量(牺牲了代码的存储空间,节省了运行时间)。原创 2017-08-21 11:39:40 · 391 阅读 · 0 评论 -
堆(heap)和栈(stack)的区别
在 C/C++里面的程序由5个区组成:栈区,堆区,全局区,文字常量区,程序代码区; (1)栈的地址空间向低地址方向生长,堆的地址空间向高地址方向生长; 生长方向:就是存放变量的地址由大到小还是由小到大; 下面程序是测试栈和堆的生长方向;#include <iostream>using namespace std;int main(){ int m=1 , n=2原创 2017-08-21 14:51:51 · 336 阅读 · 0 评论 -
深入浅出深拷贝和浅拷贝
深拷贝(值拷贝)和浅拷贝(位拷贝)的区别 浅拷贝:就是对指针的拷贝,拷贝完成后,两个指针指向同一块内存地址空间; 深拷贝:不但是对指针的拷贝,而且对指针指向的内容进行拷贝, 拷贝完成之后的两个指针指向两块不同的内存空间。 浅拷贝容易出现的问题: (1)浅拷贝只是对类中的简单数据成员进行赋值,当类的成员变量存在指针成员时,就会出现问题。 (2)在浅拷贝中由于obj1原创 2017-08-24 15:17:34 · 553 阅读 · 0 评论 -
对于拷贝构造函数和赋值运算符的理解
最近在做笔试题的时候,遇到了这个关于拷贝构造函数和赋值运算符的调用的问题,感觉挺容易混淆的,所以在这总结一下。 在程序员没有自己定义拷贝构造函数时,默认拷贝构造函数和赋值运算符默认的进行的是浅拷贝。 1、拷贝构造函数 函数原型:class_name (const class_name &); 函数调用情况(): (1)新建一个对象; (2)使用同类的已有对象对其进行初始原创 2017-08-24 15:39:47 · 1493 阅读 · 2 评论