Abstrakte Klassen in C++?
Verfasst: Di Sep 20, 2011 6:40 pm
Nunja, seit langem auch mal wieder da.
Dank des äußerst guten Tutorials hier, hatte ich eigentlich noch keinen nachlese Bedarf und wirklich Zeit für Posts hier im Forum hatte ich auch nicht, da war zuviel mit Hobby, Arbeit, Schule.
Aber ich habe so eine Frage aus reiner Neugier(muss ja in der Schule sowieso mit Java arbeiten...):
Also, ich habe in der Schule gelernt, dass Java abstrakte Klassen besitzt. Den Namen hatte ich vorher nie so gehört, aber der Inhalt des Unterrichts klang stark nach Interfaces. In C++ sind Interfaces ja Klassen, die virtuelle Methoden haben. Das bedeutet, die Klasse ist i.d.R. nur zum Vererben gedacht. Allerdings hätte ich gerne eine Klasse, welche nur zum Vererben gedacht ist, aber einige Methoden sind nicht virtuell, denn sie arbeiten ausschließlich mit protected Attributen, was sich ja in den Unterklassen nicht ändert. Kann ich irgendwie das instanziieren der Klasse verhindern und nur das Vererben ermöglichen, oder muss ich einfach andere Programmierer durch Kommentare darauf hinweisen bzw. ihnen mitteilen, dass es total sinnlos wäre, folgende Klasse zu instanziieren? Oder muss ich den new Operator überladen und so dem Bösen ein Ende bereiten?
Dank des äußerst guten Tutorials hier, hatte ich eigentlich noch keinen nachlese Bedarf und wirklich Zeit für Posts hier im Forum hatte ich auch nicht, da war zuviel mit Hobby, Arbeit, Schule.
Aber ich habe so eine Frage aus reiner Neugier(muss ja in der Schule sowieso mit Java arbeiten...):
Also, ich habe in der Schule gelernt, dass Java abstrakte Klassen besitzt. Den Namen hatte ich vorher nie so gehört, aber der Inhalt des Unterrichts klang stark nach Interfaces. In C++ sind Interfaces ja Klassen, die virtuelle Methoden haben. Das bedeutet, die Klasse ist i.d.R. nur zum Vererben gedacht. Allerdings hätte ich gerne eine Klasse, welche nur zum Vererben gedacht ist, aber einige Methoden sind nicht virtuell, denn sie arbeiten ausschließlich mit protected Attributen, was sich ja in den Unterklassen nicht ändert. Kann ich irgendwie das instanziieren der Klasse verhindern und nur das Vererben ermöglichen, oder muss ich einfach andere Programmierer durch Kommentare darauf hinweisen bzw. ihnen mitteilen, dass es total sinnlos wäre, folgende Klasse zu instanziieren? Oder muss ich den new Operator überladen und so dem Bösen ein Ende bereiten?