Hoofdstuk 4. Code aanmaken met templates

KDevelop gebruikt templates voor de aanmaak van bronbestanden en om het herhalende schrijven van code te vermijden.

Een nieuwe klasse aanmaken

Het genereren van code wordt het meest gebruikt bij het schrijven van nieuwe klassen. Voor de creatie van een nieuwe klasse in een bestaand project klikt u met de rechtermuisknop op de projectmap en selecteert Vanuit een sjabloon maken.... Dit dialoogvenster kunt u ook openen via het menu door BestandNieuw van sjabloon te selecteren, maar het gebruik van een projectmap heeft het voordeel dat het een locatie instelt voor de uitvoerbestanden. Selecteer Klasse in het keuzemenu, en de gewenste programmeertaal en sjabloon in het volgende dialoogvenster. Na de selectie van een sjabloon voor een klasse, vult u de details van de nieuwe klasse in.

Eerst moet u een identificatie opgeven voor de nieuwe klasse. Dit kan een simpele naam zijn (zoals Bus) of een complete identificatie met namespaces (zoals Transportation::Bus). In het laatste geval zal KDevelop de identifier analyseren en de namespaces van de eigenlijke naam separeren. Op dezelfde pagina kunt u basisklasses voor de nieuwe klasse toevoegen. U zal merken dat met sommige sjablonen gelijk een basisklasse wordt toegevoegd, niets houd u tegen om deze weer te verwijderen en/of andere klassen toe te voegen. U moet de volledige overervings-statement hier uitschrijven, deze is programmeertaal afhankelijk, zoals als public QObject for C++, extends SomeClass voor PHP of eenvoudig de klassenaam voor Python.

In het volgende venster kunt u kiezen uit een lijst met virtuele methoden van all overgeërfde klassen, met enkele standaard constructors, destructors en operators. Het selecteren van een keuzevakje naast de omschrijving zal deze methode in de nieuwe klasse implementeren.

Als u klikt op Volgende dan opent een dialoogvenster waar u members aan de klas kunt toevoegen. Afhankelijk van het geselecteerde sjabloon kunnen deze in de nieuwe klasse verschijnen als nieuwe member variabelen of als eigenschappen met setters en getters daarvoor. In een programmeertaal waar variabelen gedeclareerd moeten worden zoals C++, moet u zowel de naam en het type van de member specificeren, zoals int number of QString name. In andere programmeertalen kunt u het type weglaten, maar is het gebruikelijk om dit toch wel te doen omdat het gekozen sjabloon er gebruik van kan maken.

In het volgende dialoogvenster kunt u een licentie voor uw nieuwe klasse invoeren, door de gekozen sjabloon vereiste speciale opties en de uitvoerlocaties voor de aangemaakte bestanden instellen. Door te klikken op Voltooien, sluit u de assistent en creëert u de nieuw klasse. De gecreëerde bestanden worden geopend in de editor en u kunt onmiddellijk beginnen met het toevoegen van code.

Na het creëren van de nieuwe C++ klasse heeft u de keuzemogelijkheid om het toe te voegen aan een project. Kies een project uit in het dialoogvenster of sluit het venster en voeg een doel later handmatig toe.

Als u heeft gekozen voor het Qt Object-sjabloon en enkele van de standaard methoden heeft gekozen en twee member variabelen heeft toegevoegd dan moet het resultaat eruit zien als in de volgende afbeelding.

U kunt zien dat de data members zijn omgezet naar Qt properties met accessor functies en de Q_PROPERTY macros. Argumenten naar setter functies worden zelf waar mogelijk doorgegeven met const-reference. Bovendien is een private klasse gedeclareerd, een private pointer gecreëerd met Q_DECLARE_PRIVATE. Dit is allemaal uitgevoerd door het sjabloon, in de eerste stap een andere sjabloon uitkiezen zou het resultaat compleet anders zijn.