darkprodukt
Goto Top

(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
#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) {...};

Content-Key: 245960

Url: https://administrator.de/contentid/245960

Printed on: April 24, 2024 at 09:04 o'clock