vs2013中奇怪的unique_ptr行为

时间:2014-12-04 14:48:00

标签: c++ visual-studio-2013 unique-ptr

想知道是否有人可以解释为什么unique_ptr打破了继承访问器,例如:

class Base {

};

class Derived : private Base {

};

int main() {
    Base* pointer = new Derived;
    return 0;
}

这将正确导致编译时错误,因为Derived使用private关键字从Base继承。因此Derived之外的任何人都不应该知道Derived和Base之间的关系。但如果我这样做:

unique_ptr<Base> pointer = unique_ptr<Base>(new Derived);

而不是:

Base* pointer = new Derived;

代码编译并运行正常......

0 个答案:

没有答案