Effective C++学习笔记 (6)
2012-09-04 00:56
204 查看
本人学习C++不精,故重新学习,点滴记录与大家分享,不足之处还望大牛多多指教
。
若不想使用编译器自动生成的函数,就该明确拒绝
其实本条款讲的比较简洁,由于条款5说明了“默认构造函数”、“拷贝构造函数”、“复制运算符”这三个虽然用户不自己定义,但是用到的时候编译器还是会为它们生成代码,所以就导致了一些情况下, 用户不想提供拷贝构造函数,但是编译器默认生成了,解决这类问题主要经过了如下几步。1、 将拷贝构造函数生命为private的,这样一来外部就没法调用了;
2、 但是内部的成员方法或者friend类还是一样可以调用,那怎么办呢?只申明,不实现,这样一来用到的地方就会报一个连接错误;
3、 有时候大家看到连接错误会比看到编译错误更加抓狂,所以有什么方法能让该类问题在编译阶段就暴露出来呢,当然,实现一个基类,然后继承它,这样一来子类就不用关心拷贝构造函数的问题了。以下是一些代码样例。
无论是在类外部还是在类里面,都会在编译时就会报错,读者可以自己尝试其他几种情况。其实这个例子在C++中最常见的是ios_base类,读者可以查阅相关代码。
相关文章推荐
- Effective C++学习笔记之第五章(3)
- effective c++学习笔记
- Effective C++学习笔记 第一弹 1-4
- [C++学习] effective c++ 笔记 pass by value ,pass by reference
- Effective C++学习笔记 (12)
- Effective C++学习笔记:确定基类有虚析构函数
- Effective C++学习笔记
- 透彻了解inline的里里外外——effective c++学习笔记
- const成员函数 --Effective C++学习笔记
- Effective C++学习笔记 第二弹 5-10
- effective c++学习笔记
- Effective C++学习笔记 条款05:了解C++默默编写并调用的哪些函数
- Effective C++学习笔记之第五章(4)
- Effective C++学习笔记:确定基类有虚析构函数
- Effective C++学习笔记:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- Effective C++学习笔记:确定基类有虚析构函数
- Effective C++学习笔记目录
- Effective C++学习笔记 chapter 2
- 为“异常安全的努力”是值得的——effective c++学习笔记
- effective c++学习笔记