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, 1067 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) {...};
Ähnliche Inhalte
SAN, NAS, DAS
CLI Cable HP 2012fc sc modular smart array oder serielles Kabel (8)

Frage von Dominik-EUNES zum Thema SAN, NAS, DAS ...

RedHat, CentOS, Fedora
2 DNS Server (bind) in verschiedenen Netzsegmenten verketten (3)

Frage von Vader666 zum Thema RedHat, CentOS, Fedora ...

Windows Server
Mehrere Direct Access Server an verschiedenen Standorten (4)

Frage von geocast zum Thema Windows Server ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(4)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...