Auch wenn er ein Student, einen Versuch wert zu beantworten, weil es sehr komplex ist nicht so einfach, zumindest für einen neuen Besucher von C++ :)
Klassen in C++ eine Kreuzung von zwei Design-Paradigmen zu dienen,
1) ADT :: was bedeutet im Grunde ein neuer Typ, etwas wie ganze Zahlen 'int' oder reelle Zahlen 'doppelt' oder sogar ein neues Konzept wie 'Datum'. in diesem Fall die einfache Klasse wie folgt aussehen sollte,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
.
.
.
private:
// no one can see anything in this area except you.
.
.
.
};
dies das Grundgerüst eines ADT ist ... natürlich kann es einfacher sein, durch den öffentlichen Bereich zu ignorieren! und löschen Sie die Zugriffsmodifikatoren (öffentlich, privat) und das Ganze wird privat sein. aber das ist nur Unsinn. Weil der NewDataType nutzlos wird! Stellen Sie sich ein 'int' vor, das Sie einfach deklarieren können, aber Sie können nichts damit machen.
Dann benötigen Sie einige nützliche Werkzeuge, die für die Existenz des NewDataType grundsätzlich nicht erforderlich sind, aber Sie verwenden sie, um Ihren Typ wie einen beliebigen "primitiven" Typ in der Sprache aussehen zu lassen.
der erste ist der Konstruktor. Der Konstruktor wird an vielen Stellen in der Sprache benötigt. schauen Sie sich int an und versuchen Sie, sein Verhalten zu imitieren.
int x; // default constructor.
int y = 5; // copy constructor from a 'literal' or a 'constant value' in simple wrods.
int z = y; // copy constructor. from anther variable, with or without the sametype.
int n(z); // ALMOST EXACTLY THE SAME AS THE ABOVE ONE, it isredundant for 'primitive' types, but really needed for the NewDataType.
Jede Zeile der obigen Zeilen ist eine Deklaration, die Variable wird dort konstruiert.
und am Ende vorstellen, dass die oben int Variablen in einer Funktion, die Funktion ‚Spaß‘ genannt wird,
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
Sie die magische Linie zu sehen, hier gibt es die Compiler sagen kann jeder, was Sie wollen! nachdem Sie alles tun und Ihr NewDataType ist nicht mehr nützlich für den lokalen Bereich wie in der Funktion, Sie KILL IT. ein klassisches Beispiel wäre die Freigabe des reservierten Speichers durch 'neu'!
so unsere sehr einfach NewDataType wird,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
NewDataType()
{
myValue = new int;
*myValue = 0;
}
NewDataType(int newValue)
{
myValue = new int;
*myValue = newValue;
}
NewDataType(const NewDataType& newValue){
myValue = new int;
*myValue = newValue.(*myValue);
}
private:
// no one can see anything in this area except you.
int* myValue;
};
Nun ist diese die sehr Grundgerüst ist, den Aufbau einer nützlichen Klasse, die Sie öffentliche Funktionen zur Verfügung stellen müssen zu starten.
Es gibt eine Menge von kleinen Werkzeugen für den Aufbau einer Klasse in C++,
zu betrachten. . . .
2) Objekt :: was bedeutet im Grunde eine neue Art, aber der Unterschied ist, dass es zu Brüdern, Schwestern, Vorfahren und Nachkommen gehört. schau dir 'double' und 'int' in C++ an, das 'int' ist eine Sonne von 'double', weil jedes 'int' zumindest im Konzept 'double' ist :)
Dieses _has_ ist Hausaufgabe! – xian
Ich kann es kaum glauben, dass Sie keine Beispiele finden konnten, indem Sie zu diesem Thema googlen. Die meisten der folgenden Beispiele, kopieren Sie einfach hier eingefügt, von Tutorials im Web. –
Sie müssen ernsthaft nicht sehr hart geschaut haben. –