Même s'il est un étudiant, vaut la peine d'essayer de répondre parce qu'il est complexe pas facile au moins pour un nouveau visiteur de C++ :)
Classes en C++ servir une intersection de deux paradigmes de conception,
1) ADT :: ce qui signifie fondamentalement un nouveau type, quelque chose comme des entiers 'int' ou des nombres réels 'double' ou même un nouveau concept comme 'date'. dans ce cas, la classe simple devrait ressembler à ceci,
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.
.
.
.
};
c'est le squelette le plus élémentaire d'un ADT ... Bien sûr, il peut être plus simple en ignorant l'espace public! et en effaçant les modificateurs d'accès (public, privé) et le tout sera privé. mais c'est juste un non-sens. Parce que le NewDataType devient inutile! Imaginez un 'int' que vous pouvez simplement déclarer mais vous ne pouvez rien faire avec.
Ensuite, vous avez besoin de quelques outils utiles qui ne sont pas fondamentalement requis pour l'existence de NewDataType, mais vous les utilisez pour laisser votre type ressembler à n'importe quel type 'primitif' dans la langue.
le premier est le constructeur. Le constructeur est nécessaire dans de nombreux endroits de la langue. regardez int et essayons d'imiter son comportement.
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.
chaque ligne des lignes ci-dessus est une déclaration, la variable est construite là.
et à la fin imaginer les variables int ci-dessus dans une fonction, cette fonction est appelée « fun »,
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
vous voyez la ligne magique, ici vous pouvez dire au compilateur tout ce que vous voulez! après avoir tout fait et votre NewDataType n'est plus utile pour la portée locale comme dans la fonction, vous TUEZ. un exemple classique serait de libérer la mémoire réservée par «nouveau»!
donc notre très simple NewDataType devient,
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;
};
Maintenant, ce squelette est le très basique, pour commencer à construire une classe utile, vous devez fournir des fonctions publiques.
Il y a beaucoup de petits outils à considérer dans la construction d'une classe en C++,
. . . .
2) Objet :: ce qui signifie fondamentalement un nouveau type, mais la différence est qu'il appartient aux frères, sœurs, ancêtres et descendants. regardez 'double' et 'int' en C++, le 'int' est un soleil de 'double' parce que chaque 'int' est un 'double' au moins dans le concept :)
Ceci _has_ être devoirs! – xian
Je peux difficilement croire que vous n'avez pas trouvé d'exemples via googling sur ce sujet. La plupart des exemples ci-dessous, il suffit de copier collé ici, à partir de tutoriels sur le web. –
vous sérieusement ne doit pas avoir l'air très dur. –