Anche se lui è uno studente, vale la pena provare a rispondere, perché si tratta di un complesso non così facile, almeno per un nuovo visitatore di C++ :)
classi in C++ servire un incrocio di due paradigmi di progettazione,
1) ADT :: che significa fondamentalmente un nuovo tipo, qualcosa come numeri interi int 'o numeri reali' double 'o anche un nuovo concetto come' date '. in questo caso la semplice classe dovrebbe essere simile,
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.
.
.
.
};
questo è lo scheletro di base di un ADT ... Naturalmente può essere più semplice ignorando l'area pubblica! e cancellando i modificatori di accesso (pubblico, privato) e l'intera cosa sarà privata. ma non ha senso. Perché il NewDataType diventa inutile! Immagina un 'int' che puoi solo dichiarare ma NON PUOI fare nulla con esso.
Quindi, sono necessari alcuni strumenti utili che non sono fondamentalmente necessari all'esistenza di NewDataType, ma li si utilizza per consentire al tipo di apparire come qualsiasi tipo 'primitivo' nella lingua.
il primo è il Costruttore. Il costruttore è necessario in molti posti nella lingua. guarda int e proviamo a imitarne il comportamento.
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.
ogni riga delle righe precedenti è una dichiarazione, la variabile viene costruita lì.
e alla fine immaginare le variabili int di cui sopra in una funzione, quella funzione si chiama 'fun',
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
si vede la linea magica, qui si può dire al compilatore qualsiasi cosa che si desidera! dopo aver fatto ogni cosa e il tuo NewDataType non è più utile per l'ambito locale come nella funzione, lo uccidi. un esempio classico sarebbe il rilascio della memoria riservata da 'nuovo'!
quindi il nostro semplice NewDataType diventa,
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;
};
Ora, questo è lo scheletro molto semplice, per iniziare a costruire una classe utile è necessario fornire funzioni pubbliche.
ci sono un sacco di piccoli strumenti da considerare nella costruzione di una classe in C++,
. . . .
2) Oggetto :: che in pratica significa un nuovo tipo, ma la differenza è che appartiene a fratelli, sorelle, antenati e discendenti. guarda 'double' e 'int' in C++, 'int' è un sole di 'double' perché ogni 'int' è un 'doppio' almeno nel concetto :)
Questo _has_ essere compiti! – xian
Non riesco a credere che non sia stato possibile trovare alcun esempio tramite googling su quell'argomento. La maggior parte degli esempi qui sotto, copia appena incollati qui, da tutorial altro sul web. –
non dovresti essere seriamente serio. –