我创建了 2 个类。一个称为 Shape,它是一个虚拟类。另一个称为 Circle(我打算创建更多的类,例如:三角形、正方形 ....)。我想找到对象的圆形区域,但这并不重要。这是我的问题。当我想创建这样的对象时:
vector<Shape *> mStack;
Shape *newShape = NULL;
newShape = new Circle(10.6);
mStack.push_back(newShape);
我可以在主文件中毫无问题地创建它。但是当我尝试在“Shape”类中创建它的函数时......就像这样:
void Shape::Create()
{
Shape *newShape = NULL;
newShape = new Circle(10.6);
mStack.push_back(newShape);
}
我收到以下错误:语法错误:标识符'Circle'
...这是我的课。
#pragma once
#include <vector>
using namespace std;
class Shape
{
private:
vector<Shape *> mStack;
public:
Shape();
~Shape(void);
virtual double Circle_area() = 0;
};
*********************************************************
#pragma once
#include "Shape.h"
class Circle : public Shape
{
private:
double m_r;
public:
Circle();
Circle(double r);
~Circle(void);
double Create();
double Circle_area();
};
这里的问题在哪里?如何在父类中创建对象?我希望你明白我想说什么。谢谢您的帮助。