对于非Heap-based类型的资源,智能指针往往不适合作为资源的管理者,这个时候需要建立自己的资源管理类。这个时候需要特别注意类的copying行为,这里的copying行为包括赋值运算符和拷贝构造函数。
编写资源管理类时,要考虑如果发生拷贝行为会怎么样?通常的解决办法有两种。其一,禁止复制,将这两个函数声明为private的。其二,对底层资源引入引用计数法(可以使用智能指针)
编译器会自动的创建这两个函数,除非编译器创建的这两个函数做了自己想要的事情,不然还是要自己编写这两个函数。
对于非Heap-based类型的资源,智能指针往往不适合作为资源的管理者,这个时候需要建立自己的资源管理类。这个时候需要特别注意类的copying行为,这里的copying行为包括赋值运算符和拷贝构造函数。
编写资源管理类时,要考虑如果发生拷贝行为会怎么样?通常的解决办法有两种。其一,禁止复制,将这两个函数声明为private的。其二,对底层资源引入引用计数法(可以使用智能指针)
编译器会自动的创建这两个函数,除非编译器创建的这两个函数做了自己想要的事情,不然还是要自己编写这两个函数。