(C++ CLI) Array aus verschiedenen abgeleiteten Objekten
Guten Tag,
ich versuche gerade ein kleines Spiel, aus weiterbildungs Gründen zu entwickeln.
In diesem Spiel gibt es verschiedenen Gebäude. Jedes Gebäude hat ein Objekt, das
auf einer abstrakten Klasse aufbaut. Hier ein Beipsiel:
buildings.h
buildings.cpp
Es gibt natürlich noch mehr Gebäude und mehr funktionen etc.
Mein Frage: Ist sowas möglich?
Also die Objekte der verschiedenen gebäude in einem Array zu verwalten.
Ich würde ungern eine if abfrage machen, ob auf dem feld jetzt das Gebäude, oder das Gebäude, oder... steht.
Vorallem deshalb, da wenn ich ein neues Gebäude hinzufügen möchte. Ich nicht nur eien neue Klasse schreiben muss, sondern eben auch
jede dieser abfragen verändern.
Ich hab schon etwas gesucht und nur array<Object^>^ gefunden, aber da keinen weg auf die funktionen in dem enthaltenden Objekt zu zugreifen.
Edit 1:
So wie in dem Artikel:
http://de.wikipedia.org/wiki/Abstrakte_Klasse
Unter E:
ich versuche gerade ein kleines Spiel, aus weiterbildungs Gründen zu entwickeln.
In diesem Spiel gibt es verschiedenen Gebäude. Jedes Gebäude hat ein Objekt, das
auf einer abstrakten Klasse aufbaut. Hier ein Beipsiel:
buildings.h
#pragma once
using namespace System;
public ref class BaseBuilding abstract
{
protected:
System::String^ _buildingName;
bool _consumable;
public:
System::String^ GetBuildingName();
bool IsBuildingConsumeable();
};
public ref class Quarry : public BaseBuilding
{
public:
Quarry();
};
buildings.cpp
#include "Game.h"
#include "StdAfx.h"
System::String^ BaseBuilding::GetBuildingName()
{
return _buildingName;
}
bool BaseBuilding::IsBuildingConsumeable()
{
return _consumable;
}
Quarry::Quarry()
{
_buildingName = L"Quarry";
_consumable = false;
}
Es gibt natürlich noch mehr Gebäude und mehr funktionen etc.
Mein Frage: Ist sowas möglich?
array<Buildings^>^ buildings = {gcnew Quarry(), gcnew Farm(), gcnew Woodcutter()};
System::String^ str = buildings->GetBuildingName();
Also die Objekte der verschiedenen gebäude in einem Array zu verwalten.
Ich würde ungern eine if abfrage machen, ob auf dem feld jetzt das Gebäude, oder das Gebäude, oder... steht.
Vorallem deshalb, da wenn ich ein neues Gebäude hinzufügen möchte. Ich nicht nur eien neue Klasse schreiben muss, sondern eben auch
jede dieser abfragen verändern.
Ich hab schon etwas gesucht und nur array<Object^>^ gefunden, aber da keinen weg auf die funktionen in dem enthaltenden Objekt zu zugreifen.
Edit 1:
So wie in dem Artikel:
http://de.wikipedia.org/wiki/Abstrakte_Klasse
Unter E:
public static double berechneGesamtFlaeche(final Geometrisch f) {...};
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 245960
Url: https://administrator.de/contentid/245960
Ausgedruckt am: 22.11.2024 um 16:11 Uhr