c++中赋值与初始赋值的区别
来源:互联网 发布:网络作家名字是字母的 编辑:程序博客网 时间:2024/05/16 02:28
赋值是在执行阶段由程序向固定存储单元的变量写入数值的操作,此后仍允许用其他赋值赋值函数修改其内容。
初始赋值则是对const类的常数仅在编译时完成予留内存单元并同时填入初值,此后不允许再改动。所以不能在构造函数内使用赋值语句(即等号)在运行阶段对常数或引用类型数据进行赋值。在C++语言中只有const和引用类型是要在编译时就要指明其初值。由于定义在类中的成员都是抽象的数据结构描述,不分配内存单元,因此在对构造函数进行编译的阶段也就不可能完成赋初值的操作。为了解决这一矛盾,C++语言只有借助于类对象“成员初始化列表”的描述区将要赋初值的的成员名及初值预先声明,待执行时产生了对象(即分配了内存单元)后再补做做上述的赋初值操作。从某种意义上讲,成员初始化表示特意为这两种数据成员准备的也不为过。由此,成员初始化表不可写在声明语句上。
至于引用类型,因为编译器不知道在使用时将与哪个对象成员相对应,所以不允许在类中定义联系。然而联系又必须确定,否则在运行阶段可能出现“int& i=3”的错误,所以只好将引用类型与const类型同等对待。
0 0
- c++中赋值与初始赋值的区别
- python中表达式赋值与链式赋值的区别
- PHP中使用&赋值与=赋值的区别
- JAVA中对象赋值与主数据类型赋值的区别
- c++-赋值与初始化的区别
- 赋值与复制的区别
- 初始化与赋值的区别
- 初始化与赋值的区别
- 初始化与赋值的区别
- 初始化与赋值的区别
- 对于数组的初始赋值
- JAVA中String直接赋值与new出来的对象赋值的区别
- C++中类对象的初始化与赋值的区别
- JS中冒号的作用(与赋值符号的区别)
- C++初始化与赋值 区别
- sql server中SELECT 与 SET 赋值的区别
- sql server中SELECT 与 SET 赋值的区别
- 注意区分shell与Makefile中变量赋值的区别
- RunLoop的深入剖析
- iOS Xcode中SVN的配置
- 分布式服务协调员zookeeper - 应用场景和监控
- #85 – Two Main Namespaces Used in Every WPF XAML File(2个在每个XAML中都会使用的命名空间)
- java基础教程--接口
- c++中赋值与初始赋值的区别
- 《代码之髓》
- JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作
- IOS 内支付那点事
- Android之JNI NDK如何取消native support 重新add native support
- TCP UDP Socket
- 66. Plus One
- java基础教程-对象
- mybatis 7