2 つのクラスを作成しました。1 つは Shape と呼ばれ、その仮想クラスです。もう 1 つは 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();
};
ここで問題はどこにありますか?親クラス内にオブジェクトを作成するにはどうすればよいですか? 私が言おうとしていることを理解していただければ幸いです。助けてくれてありがとう。