Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

(C++ CLI) Array aus verschiedenen abgeleiteten Objekten

Frage Entwicklung Visual Studio

Mitglied: Darkprodukt

Darkprodukt (Level 1) - Jetzt verbinden

08.08.2014, aktualisiert 14:06 Uhr, 1053 Aufrufe

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
01.
#pragma once 
02.
 
03.
using namespace System; 
04.
 
05.
public ref class BaseBuilding abstract 
06.
07.
	protected: 
08.
		System::String^ _buildingName; 
09.
		bool _consumable; 
10.
 
11.
	public: 
12.
		System::String^ GetBuildingName(); 
13.
		bool IsBuildingConsumeable(); 
14.
 
15.
}; 
16.
 
17.
public ref class Quarry : public BaseBuilding 
18.
19.
	public:  
20.
		Quarry(); 
21.
};
buildings.cpp
01.
#include "Game.h" 
02.
#include "StdAfx.h" 
03.
 
04.
System::String^ BaseBuilding::GetBuildingName() 
05.
06.
	return _buildingName; 
07.
08.
 
09.
bool BaseBuilding::IsBuildingConsumeable() 
10.
11.
	return _consumable; 
12.
13.
 
14.
Quarry::Quarry() 
15.
16.
	_buildingName = L"Quarry"; 
17.
	_consumable = false; 
18.
	 
19.
}
Es gibt natürlich noch mehr Gebäude und mehr funktionen etc.

Mein Frage: Ist sowas möglich?
01.
array<Buildings^>^ buildings = {gcnew Quarry(), gcnew Farm(), gcnew Woodcutter()};  
02.
 
03.
System::String^ str = buildings[0]->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:
01.
public static double berechneGesamtFlaeche(final Geometrisch[] f) {...};
Neuester Wissensbeitrag
Ähnliche Inhalte
Server-Hardware
Hp smart array e200i accu austausch (8)

Frage von hansleo zum Thema Server-Hardware ...

Entwicklung
gelöst Array in HTML-Tabelle umwandeln mittels AutoIT (5)

Frage von drnatur zum Thema Entwicklung ...

Netzwerkprotokolle
gelöst HTTP Reverse Proxy, Umleitung auf verschiedenen Ports anhand der Subdomain (1)

Frage von danielr1996 zum Thema Netzwerkprotokolle ...

Netzwerke
gelöst Zugriff auf Server von verschiedenen VLANs aus (7)

Frage von Kroeger02 zum Thema Netzwerke ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...