值型句柄
场景:指针型句柄种和值型句柄类
指针型句柄类和值型句柄类
C++ Primer 第四版 15章最后两节,介绍了指针型句柄Sales_item类和值型句柄Query类,
但是我觉得这里的值型句柄Query类并不具有作者在13章所说的值语义,
Query类型复制时并没有得到新副本,而是指向同一个Query_base,相比Sales_item类,Query类只是没有-> 和*操作符。
有看过的同学没,给讲解一下呗;
------解决方案--------------------
它的实现复制了些什么并不重要, 它的接口像一个值一样就行了.
------解决方案--------------------
不是很明白楼主问题的意思。按我的理解:指针型可以实现C++的多态,而值型不可以。当你定义声明一个类是,比如ClassBase base;他的类型是确定的,既然确定了还怎么多态?但如果声明为ClassBase* pBase;那么这个pBase既可以指向父类,也可以指向子类,也可以调用被子类重写的父类的虚方法等等
------解决方案--------------------
指针型->实质是*解引用后再.操作。"."操作应该是对象访问类成员的吧。怎么会形式呢?
何况一个有重载操作符->,一个没有重载,这是两种不同的使用方法啊。
指针型句柄类和值型句柄类
C++ Primer 第四版 15章最后两节,介绍了指针型句柄Sales_item类和值型句柄Query类,
但是我觉得这里的值型句柄Query类并不具有作者在13章所说的值语义,
Query类型复制时并没有得到新副本,而是指向同一个Query_base,相比Sales_item类,Query类只是没有-> 和*操作符。
有看过的同学没,给讲解一下呗;
------解决方案--------------------
它的实现复制了些什么并不重要, 它的接口像一个值一样就行了.
------解决方案--------------------
不是很明白楼主问题的意思。按我的理解:指针型可以实现C++的多态,而值型不可以。当你定义声明一个类是,比如ClassBase base;他的类型是确定的,既然确定了还怎么多态?但如果声明为ClassBase* pBase;那么这个pBase既可以指向父类,也可以指向子类,也可以调用被子类重写的父类的虚方法等等
------解决方案--------------------
指针型->实质是*解引用后再.操作。"."操作应该是对象访问类成员的吧。怎么会形式呢?
何况一个有重载操作符->,一个没有重载,这是两种不同的使用方法啊。