条款5.了解c++默默编写并且调用了哪些函数。
2015-10-04 20:14
357 查看
如果想在一个内含reference成员的class内支持赋值操作,必须自己定义copy assignment操作符。而且面对“内含有const成员的”class,编译器的反应也是相同的,由于更改const成员是非法的,所以编译器不知道如何在其自己生成的赋值函数之中去面对他们。
在上面的类之中,由于自己定义了一个引用,那么自己必须定义copy构造函数以及拷贝赋值运算符。对于const变量也是这样。
还有一种情况就是基类如果将拷贝赋值运算符声明为私有的时候,编译器就会拒绝为其派生类声明一个拷贝赋值运算符。
template<class T> class NameObject { public: NameObject(std::string & name, const T & value; ... private: std::string & nameValue; //这里这个是一个reference const T objectValue; //这里这个是一个const };
在上面的类之中,由于自己定义了一个引用,那么自己必须定义copy构造函数以及拷贝赋值运算符。对于const变量也是这样。
还有一种情况就是基类如果将拷贝赋值运算符声明为私有的时候,编译器就会拒绝为其派生类声明一个拷贝赋值运算符。
相关文章推荐
- C语言函数指针变量
- C++缺省参数和函数重载
- C++ assert()的用法
- 什么是EOF ,如何输入EOF
- emacs 24.4.1 终极 C++智能提示解决方案
- C++学习笔记5——类的继承
- 条款1:将c++视作一个语言联邦
- C++基础编程----2.3标准库类型vector
- C++输出格式控制
- C++学习(二)-虚基类(2)
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- c++类的特性探究(一)
- 关于C语言的EOF
- 黑马程序员—OC语言的self关键字和super关键字
- C++引用
- C++ Primer Plus 课后习题 第四章
- C++ map容器 按照value值排序
- AVL树的思想与C++实现
- emacs 24.4.1 使用company mode智能提示C++程序
- win7里设置VC6中的字体