【发布时间】:2020-04-06 10:54:09
【问题描述】:
我做了一个非常简单的程序来尝试将唯一指针和继承融合在一起。但是,它最终以退出代码 11 崩溃,我不知道为什么。谁能解释崩溃的原因?
//Counter Class, Base class
class Counter {
public:
virtual int addStuff(int& x)=0;
};
//Derived Class, child class of Counter
class Stuff:public Counter {
public:
virtual int addStuff(int& x) override;
};
//Main function using unique pointers to call addStuff from Stuff class
int main() {
int x = 12;
std::unique_ptr<Stuff> p;
p->addStuff(x);
}
【问题讨论】:
-
在未初始化的指针上调用成员函数很容易导致未定义的行为。
标签: c++ c++11 pointers inheritance smart-pointers