C++赋值运算符重载 C++

C++赋值运算符重载

这里以String类为例分析C++的赋值运算符重载问题,下面是一个简易的String类 要实现运算符重载函数,我们需要注意以下几点: 返回值类型声明为该类的引用,并且函数要返回对象自身的引用(*thi...
阅读全文
内存对齐 C++

内存对齐

为什么要内存对齐? 1、平台原因:不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 2、性能原因:为了访问未对齐的内存,处理器需要...
阅读全文
C与C++的区别 C++

C与C++的区别

第一点就是文件后缀名的区别,这个就不多说了。 返回值 C语言中没有指定函数的返回值时,默认返回int类型,如果函数内没有调用其他函数,会返回一个随机值0xcccccccc,如果调用了其他函数,则返回最...
阅读全文
智能指针shared_ptr C++

智能指针shared_ptr

智能指针利用引用计数的浅拷贝来实现存在以下三个问题: 引用计数更新存在着线程安全 循环引用 定制删除器和空间分配器 循环引用问题 用shared_ptr实现双向链表时,由于每个结点的引用计数都为3(除...
阅读全文
String类的浅拷贝和深拷贝 C++

String类的浅拷贝和深拷贝

浅拷贝能够完成普通成员的复制。当数据成员动态开辟空间时,如果采用默认的浅拷贝,则两个对象中的两个指针将指向同一个地址,当对象析构时,会调用两次析构函数,而导致内容泄漏。 版本一 版本二  
阅读全文
C++日期类 C++

C++日期类

  使用C++完成一个【日期类】的编写,可以实现以下功能。 日期 +/- 天数-----输出日期 日期 - 日期------输出天数 代码实现:  
阅读全文