由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - protected构造函数可以防止slicing是什么意思?
相关主题
问个构造函数的问题请教几个C++问题
C++的"初始化"小结Synthesized Constructor到底什么意思?
糊涂了,请问一个对象访问的基本问题[合集] 又学了一招
初学者问个 C++ constructor 问题吧请教个Bloomberg 的 C++ 题目
C++ questionsIs the order of initialization a, b, c or c, b, a?
C++ Q01: private inheritance.一个c++ constructor的问题, thanks
这个类的default constructor怎么写question about Design Patterns
C++做题,麻烦师傅们再看看。c++ question
相关话题的讨论汇总
话题: slicing话题: protected话题: 构造函数话题: 基类
进入Programming版参与讨论
1 (共1页)
f*****e
发帖数: 2992
1
http://www.parashift.com/c++-faq/virtual-ctors.html
"you can reduce the chance of slicing by making its copy constructor
protected"
b*******s
发帖数: 5216
2
给你个例子,比如你往定义了存储基类的容器放派生类的对象时,因为容器的默认行为
是使用基类的copy constructor来复制你给的对象,所以你得到的容器里面的元素都是
基类的对象,这个叫slicing.
你把基类的copy constructor用protected保护了,容器是没法访问的,因为不是基类
的真super set,这样你就能及时发现这个问题
s*w
发帖数: 729
3
en, 听懂了

【在 b*******s 的大作中提到】
: 给你个例子,比如你往定义了存储基类的容器放派生类的对象时,因为容器的默认行为
: 是使用基类的copy constructor来复制你给的对象,所以你得到的容器里面的元素都是
: 基类的对象,这个叫slicing.
: 你把基类的copy constructor用protected保护了,容器是没法访问的,因为不是基类
: 的真super set,这样你就能及时发现这个问题

1 (共1页)
进入Programming版参与讨论
相关主题
c++ questionC++ questions
what is the difference?C++ Q01: private inheritance.
菜鸟请教smart pointer这个类的default constructor怎么写
请教个C++问题C++做题,麻烦师傅们再看看。
问个构造函数的问题请教几个C++问题
C++的"初始化"小结Synthesized Constructor到底什么意思?
糊涂了,请问一个对象访问的基本问题[合集] 又学了一招
初学者问个 C++ constructor 问题吧请教个Bloomberg 的 C++ 题目
相关话题的讨论汇总
话题: slicing话题: protected话题: 构造函数话题: 基类