Test der Möglichkeiten zur Initialisierung von Objekten o.g. Typen in main-Funktion:
// File: ArrInit.cc #include <ArrInit.h> #include <ArrInitT.h> int main() { // only public elements: PublicS PuS; // implicit default Constructor PuS.s = ""; // aggregate initialization: PublicC PuC = {11, "111", 11.11}; // private elements: // no aggregate initialization: // PrivateC PrC = {22, "222", 22.22}; // `PrC' must be initialized by constructor, not by `{...}' // constructor, but no implicit default: // NoDefaultC NoDefC1; // no matching function for call to `NoDefaultC::NoDefaultC ()' // candidates are: NoDefaultC::NoDefaultC(const NoDefaultC &) // NoDefaultC::NoDefaultC(int, char *, float) // no aggregate initialization: // NoDefaultC NoDefC2 = {33, "333", 33.33}; // `NoDefC2' must be initialized by constructor, not by `{...}' // constructor initialization: NoDefaultC NoDefC3(33, "333", 33.33); // constructor, explicit default too: // DefaultC DefC1 = {44, "444", 44.44}; // `DefC1' must be initialized by constructor, not by `{...}' DefaultC DefC2; DefaultC DefC3(55, "555", 55.55);