Sto ripassando/studiando C++ ed ho notato che, nonostante tutto, sono riuscito per molto tempo a sviluppare software senza creare classi mie ma sfruttando sempre quelle presenti nell'ambiente di sviluppo che uso ed in quanto, arrivando dal C, ho sempre creato programmi misti C/C++.
Ora è giunto il momento di usare C++ e mi sono arenato sul significato ad esempio della dichiarazione delle classe qui sotto.
Da quello che ho capito:

class TMyThread : public TThread
questa dichiarazione serve per derivare la classe TThread cioè, TMyThread eredita i metodi e le proprietà di TThread

System::String FMsg;
Rispetto agli esempi che trovo in rete anche su HTML.IT in merito alla dichiarazione di classi, dovrebbe esistere, nel mio ambiente di sviluppo, almeno così ho capito, un oggetto/classe System che fa qualcosa ma per le mie conoscenze, Scrivere System::String mi confonde in quanto, String per me è un tipo di dato e notoriamente, quella scrittura coi :: non dovrebbe dichiarare un metodo?
Oppure quella scrittura aggiunge semplicemente una proprietà String alla classe System definita nell'ambiente di sviluppo?

Per ora mi fermo qua ed attendo che mi rispondiate, prima di scrivere altre castronate.


codice:
class TMyThread : public TThread
{
private:
    System::String FMsg;
    TServerSocket *FServer;
    void __fastcall SendMyMessage();
protected:
    void __fastcall Execute();
public:
        __fastcall TMyThread(TServerSocket *AServer, const System::String &AMsg);
};