Jr1*_*194 1 c++ inheritance pointers smart-pointers c++11
我制作了一个非常简单的程序来尝试将唯一指针和继承融合在一起。但是,它最终以退出代码 11 崩溃,我不知道为什么。任何人都可以解释崩溃的原因吗?
//Counter Class, Base class
class Counter {
public:
virtual int addStuff(int& x)=0;
};
Run Code Online (Sandbox Code Playgroud)
//Derived Class, child class of Counter
class Stuff:public Counter {
public:
virtual int addStuff(int& x) override;
};
Run Code Online (Sandbox Code Playgroud)
//Main function using unique pointers to call addStuff from Stuff class
int main() {
int x = 12;
std::unique_ptr<Stuff> p;
p->addStuff(x);
}
Run Code Online (Sandbox Code Playgroud)
指针p是默认初始化的,不指向任何内容。
构造一个
std::unique_ptr什么都不拥有的。值初始化存储的指针和存储的删除器。
行为是未定义的,如果
get() == nullptr
你应该p指向一个有效的对象,例如
std::unique_ptr<Stuff> p = std::make_unique<Stuff>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |