C++关键字-new

new在C++中主要有3种用法: new operator:也叫做new表达式,它调用operator new进行内存分配,并调用构造函数初始化对象。 placement new:是一个特殊的new表达式,它不进行内存分配,而是在已分配好的内存上调用构造函数初始化对象。 operator new: ...

阅读更多

C++关键字-delete

delete关键字和new关键字类似,主要有以下用法: delete表达式 operator delete 禁用函数 delete表达式 delete ptr 调用ptr所指向对象的析构函数。 调用operator delete()函数来释放ptr所指向的内存。 delete[]...

阅读更多

C++面向对象:类

类的定义 C++关键字-struct和class 类的构造函数和析构函数 构造函数 类的拷贝控制 类的拷贝控制 友元 见友元 类的核心特性之封装 见C++面向对象:封装 类的核心特性之继承 见C++面向对象:继承 见C++面向对象:多重继承 类的核心特性之多态 见C++面向对象:多态 this指针...

阅读更多

构造函数

定义 构造函数是类的成员函数,其名称与类相同。 构造函数没有返回值。 创建对象时会自动调用构造函数。 构造函数不能被声明为虚拟的。 默认的构造函数 如果没有显式定义任何构造函数时,则编译器会隐式的生成 默认构造函数(Default Constructor)。 拷贝构造函数(C...

阅读更多

拷贝控制

拷贝控制指的是一个类如何管理其对象的 拷贝 移动 赋值 销毁 拷贝控制由以下五个特殊的成员函数组成: 拷贝构造函数 拷贝赋值运算符 移动构造函数 移动赋值运算符 析构函数 拷贝控制的核心问题是资源管理,如果一个类不管理任何资源,那么编译器生成的默认版本通常就足够了。...

阅读更多

智能指针之weak_ptr

std::weak_ptr 要与 std::shared_ptr一起搭配使用。 一个std::weak_ptr对象看做是std::shared_ptr对象管理的资源的观察者,它不影响共享资源的生命周期: 如果需要操作weak_ptr正在观察的资源,可以将weak_ptr提升为shared_ptr。 当...

阅读更多

智能指针之unique_ptr

std::unique_ptr独占所指向的对象。对其持有的堆内存具有唯一拥有权。 当我们独占资源的所有权的时候,可以使用std::unique_ptr对资源进行管理。当离开unique_ptr对象的作用域时,会自动释放资源。 int main() { { std::unique_ptr...

阅读更多

智能指针之shared_ptr

std::shared_ptr能够共享对同一资源的所有权。它允许多个指针指向同一个资源,并通过引用计数来管理资源的生命周期。 当最后一个std::shared_ptr实例被销毁或重置时,它所指向的资源才会被释放。 { std::shared_ptr<int> sptr = std::mak...

阅读更多