我目前正在努力使用c ++的引用和智能指针, 这是我的课程布局(一切都是抽象A的孩子)
A
+-B
+-C
+-D
当我调用B()。foo(C())时,我想要的是将C()的共享指针添加到B内部的vector>中,并且对B()。foo(D())相同 但是当我打电话
void foo(const A& item){
container.push_back(make_shared<A>(item);
}
似乎从项目中剥离了所有非A属性(尽管函数item.bar()仍在项目中调用了重载函数)
可能我完全错过了这里的要点,但这就是我现在停留的地方