值语义与对象语义
来源:互联网 发布:psd头像源码免费下载 编辑:程序博客网 时间:2024/05/18 13:04
【1】什么是值语义?
所谓值语义是指目标对象由源对象拷贝生成,且生成后与源对象完全无关,彼此独立存在,改变互不影响。就像 int 类型变量相互拷贝一样。
C++的内置类型(bool/int/double/char)都是值语义,标准库里的 complex<>、pair<>、vector<>、map<>、string 等等类型也都是值语义。
拷贝之后就与源对象完全脱离关系。
【2】什么是对象语义?
对象语义也叫指针语义,引用语义等。
通常是指一个目标对象由源对象拷贝生成,但生成后与源对象之间依然共享底层资源,对任何一个的改变都将随之改变另一个。
就像包含有指针成员变量的自定义类在默认拷贝构造函数下对其对象之间进行的拷贝。拷贝后目标对象和源对象的指针成员变量仍指向同一块内存数据。
如果当其中一个被析构掉后,另一个对象的指针成员就会沦为名副其实的悬垂指针!
又比如,Thread 是对象语义,拷贝 Thread 是无意义的,也是被禁止的:因为 Thread 代表线程,拷贝一个Thread对象并不能让系统增加一个一模一样的线程。
- 对象语义与值语义
- 值语义与对象语义
- 值语义与对象语义
- C++对象语义与值语义
- C++之值语义与对象语义
- c++ 41 分清值语义与对象语义
- 从零开始学C++之对象语义与值语义、资源管理(RAII、资源所有权)、模拟实现auto_ptr<class>、实现Ptr_vector
- 从零开始学C++之对象语义与值语义、资源管理(RAII、资源所有权)、模拟实现auto_ptr<class>、实现Ptr_vector
- STL的安插语义与覆盖语义
- c++move语义与右值引用
- 奇异值与潜在语义索引LSI
- 右值引用与move语义
- 右值引用与转移语义
- 本体与语义网络
- 符号体系与语义
- lisp 语法与语义
- DCNN与语义分割
- [置顶] 从零开始学C++之对象语义与值语义、资源管理(RAII、资源所有权)、模拟实现auto_ptr<class>、实现Ptr_vector .
- codeforces #145 B Fence
- hibernate的formula
- 解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168
- ZOJ 3692
- 1008 Maya Calendar 解体思路
- 值语义与对象语义
- 软件项目版本管理规范总结
- 《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.3 类之间的关系
- 用python写文件输出,解决输出的中文为乱码问题
- 移植uboot2010.06到TQ2440开发板详解之一
- java 字符串排序“hello”,“world”,“test”,“中国”
- Coin Toss
- linux 部署http服务4步曲
- 面向对象(day6)