重複の可能性:
C++ 配列変数をソートする方法
保護者会の電話がありました
Shape
シェイプは 2 つの子呼び出しを取得しました
Square and Rectangle
Shape クラスは int 型の変数呼び出し領域を取得しました
だから私はこのような正方形、長方形のオブジェクトを作成しました
int main()
{
Shape *shaped[100];
//then i did some adding of object..
int areaValue;
areaValue=1;
shaped[0] = new Rectangle();
shaped[0]->setArea(areaValue);
areaValue=7;
shaped[1] = new Square();
shaped[1]->setArea(areaValue);
areaValue=5;
shaped[2] = new Square();
shaped[2]->setArea(areaValue);
shapeCounter = 3;
sort(shaped, shaped + 3, sort_by_area());
for (int i=0;i<shapeCounter;i++)
{
cout << shaped[i].getArea() << endl;
}
}
次に、たとえばSquare.cppで
これは私がしました
struct sort_by_area
{
static bool operator()(Shape* x, Shape* y)
{
return x->getArea() < y->getArea();
}
};
上記のこのコードは機能します。領域で並べ替えることができますが、私の質問は、 struct を使用しない場合でも並べ替えることができるということです。 struct を使用しない場合、 sort_by_area がスコープで宣言されていないと表示されます。
私のmain.cppが子クラス.cppにあるソートコードにアクセスできるように、本当に構造体を使用する必要があります
ありがとう