我对大多数OO理论有了深刻的理解,但让我困惑的一件事是虚拟析构函数.
我认为无论什么以及链中的每个对象,析构函数总是会被调用.
你什么时候打算让它们成为虚拟的?为什么?
问题是我正在努力制作类Shape 的对象。我声明了向量,但不知道如何将它连接到类Shape及其对象。代码本身有一个基类,它是Shape,然后是两个子类Circle和Rectancle。代码的思路是在main函数中使用一个vector,对于Circle区域和Rectangle区域有多种情况。这是代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Shape
{
public:
virtual double GetArea() const = 0
{
}
private:
};
class Circle : public Shape
{
public:
Circle(double p, double r) // constructor
{
pi = p;
radius = r;
}
Circle() : pi(3.14), radius(0) {} // default constructor
void SetRadius(double value)
{
radius = value;
}
double GetRadius() const
{ …Run Code Online (Sandbox Code Playgroud)