Est-ce bien si je suis « membres imbriqués » dans le langage D, donc je l'idée déshonorante au codeEspaces de noms avec classes et structs?
class Keyboard
{
struct Unused {
string key1 = "Wake Up";
string key2 = "Sleep";
string key3 = "Power";
}
Unused unused;
}
int main()
{
Keyboard kb;
kb.unused.key1 = "Scroll Lock";
return 0;
}
D'accord, c'est un mauvais exemple que trop segmentation fault. Mais j'apprends la programmation orientée objet et je ne sais pas si c'est une bonne chose à faire ou à faire.
C'est une honte! Y a-t-il une différence entre exécuter le programme de l'auto au clavier, ou est-ce la même chose une fois compilé? –
C'est exactement la même chose: le compilateur peut voir que 'new Keyboard()' renvoie un 'Keyboard' à la compilation et ajoute simplement le type lui-même. Il n'y a pas de différence dans le code compilé. –
@pslacerda, elle est appelée inférence de type et utilisée partout dans D. foreach (w; words), sort (words); Même trier ici a une inférence. La longueur totale de l'appel serait trier! (Immutable (char) [] [], "a