Sto attraversando un periodo difficile con questo concetto. Cosa sta facendo Stroustrup qui? Cosa c'è di speciale in una classe la cui "rappresentazione fa parte della sua definizione"? In cosa è contrapposto un "tipo concreto"? (Suppongo sia in contrasto con il "tipo astratto", ma dal momento che, AFAIK, non puoi nemmeno portare un'istanza di un tipo astratto nell'esistenza, sembra ovvio che non potresti piazzare quello sullo stack , inizializzalo, ecc.)
Esiste una classe che potrei istanziare che NON si adatta a questa descrizione di una "classe concreta"? Normalmente trovo BS molto facile da seguire, ma qui mi manca il punto.
The basic idea of concrete classes is that they behave “just like built-in types.” For example, a complex number type and an infinite-precision integer are much like built-in int, except of course that they have their own semantics and sets of operations. Similarly, a vector and a string are much like built-in arrays, except that they are better behaved (§ 4.2, § 4.3.2, § 4.4.1).
The defining characteristic of a concrete type is that its representation is part of its definition. In many important cases, such as a vector, that representation is only one or more pointers to more data stored elsewhere, but it is present in each object of a concrete class.... In particular, it allows us to
• place objects of concrete types on the stack, in statically allocated memory, and in other objects (§ 6.4.2);
• refer to objects directly (and not just through pointers or references);
• initialize objects immediately and completely (e.g., using constructors; § 2.3.2); and
• copy objects (§ 3.3).
Stroustrup, Bjarne (2013-07-10). The C++ Programming Language (4th Edition) (Section 16.3 Concrete Classes; Kindle Locations 2373-2386). Pearson Education. Kindle Edition.