
C++
peiwang245
高山仰止,景行行止,夯实每一步,努力前行。
展开
-
C++深拷贝与浅拷贝(实现String类)
浅拷贝:1.什么是浅拷贝? 浅拷贝会出现什么问题?所谓浅拷贝,指的是在对象复制时,只是对对象中的数据成员进行简单的复制,默认拷贝构造函数执行的也是浅拷贝。简单的说,浅拷贝就是值传递,将源空间里面的内容复制到目标空间中。存在缺陷:多个指针可能共用管理一块内存空间,在释放时,导致对一块空间的多次释放,造成内存泄露。深拷贝:2. 什么是深拷贝?在“深拷贝”的情况下,对于对象中动态成员,就不能仅仅简单地赋值了,而应该重新动态分配空间。深拷贝与浅拷贝:3.浅拷贝与深拷贝的不同之处:转载 2020-05-29 23:22:46 · 782 阅读 · 0 评论 -
Cygwin 和MinGW 的区别与联系是怎样的?
Cygwin,原 Cygnus 出品(已被红帽收购),目前是 RedHat 名下的项目。项目的目的是提供运行于 Windows 平台的类 Unix 环境(以 GNU 工具为代表),为了达到这个目的,Cygwin 提供了一套抽象层 dll,用于将部分 Posix 调用转换成 Windows 的 API 调用,实现相关功能。这里面最典型的,最基本的模拟层就是那个 cygwin1.dll。除此之外,随着 Linux 系统的发展壮大,目前的 Cygwin 已经不仅仅提供 POSIX 兼容,因此也顺带多了更多...翻译 2020-05-14 20:16:27 · 647 阅读 · 0 评论 -
#Pragma Pack(n)与内存分配 pragma pack(push,1)与#pragma pack(1)的区别
#pragma pack(n)解释一:每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。 规则: 1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offs...转载 2020-05-08 22:55:30 · 207 阅读 · 1 评论 -
C++宏定义详解
一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。1 #define命令剖析1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符...转载 2020-05-08 22:50:26 · 1808 阅读 · 0 评论 -
visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
问题描述“Win32Project3.exe”(Win32): 已加载“D:\software\VS2013\VS2013 文档\Win32Project3\Debug\Win32Project3.exe”。已加载符号。“Win32Project3.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。“Win32...转载 2018-09-09 09:42:07 · 3375 阅读 · 2 评论 -
C语言vector的使用方法
vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数...转载 2018-09-09 16:17:12 · 27187 阅读 · 2 评论