Références en C ++





références en C ++, ++ variables de référence

Dans nos précédents articles, Nous avons déjà mentionné, que les paramètres peuvent être transmis à la fonction significative ou le pointeur. Il a travaillé lors de l'écriture des programmes en C. En C ++, il est possible de passer des paramètres à la fonction de lien. Prenons les exemples de cette leçon, vous remarquerez, qui relie plus pratique à utiliser que des signes.

lien – est un autre nom de la variable (son alias, en d'autres termes,). Lorsque la fonction reçoit un paramètre de référence, Nom du paramètre devient une variable d'alias, que nous passons à la fonction. Une telle fonction de la méthode de transmission de données permet de travailler avec des valeurs variables, qui lui sont transmises, plutôt que des copies de ces variables.

caractéristique déterminante, de préciser, que le paramètre est une référence, il est nécessaire d'ajouter le nom d'une esperluette &.

Recueillir l'exemple suivant, et tout devrait être clair:

Commençons par la fonction changement(). Appel en ligne 17 source, Nous passons dans les variables par valeur. Fonction créer en toute sécurité des copies de ces variables, enregistrera leurs données et, la fin de son “difficile” travail, détruire ces copies. En conséquence, toute modification des variables transférées ne se produira pas.

Maintenant, regardez la définition de fonction changeRef(), dans lequel les paramètres sont passés par référence – lignes 45 – 49. Comme mentionné ci-dessus, nous avons utilisé & , de dire au compilateur que, qui accepte les paramètres – ce lien. A l'intérieur de la fonction que nous appelons liens, comme des variables ordinaires. Autrement dit, nous ne devons pas appliquer l'opération de déréférencement, si vous avez besoin de changer la valeur d'une variable:

références en C ++, ++ variables de référence

Et d'appeler cette fonction de la principale (rangée 21), on n'a pas besoin, la transmission des variables, appliquer l'opération de prendre l'adresse (même & , mais avec une connotation différente), comment cela doit être fait par virement sur l'indice. Le résultat de la fonction verra, afficher les valeurs des variables sur l'écran. Les valeurs des variables modifiées avec succès.

enfin – pointeur de transmission. Directement à déterminer changePtr() – lignes 51 – 55. Il y a quelque chose, que nous n'avons pas utilisé à la transmission de liaison – déréférencement des pointeurs pour modifier les valeurs des variables:

références en C ++, ++ variables de référence

Étant donné que la fonction est de prendre les variables de pointeur, et stocke le pointeur d'adresse, lorsque vous appelez (rangée 25) peredaom dans ses variables d'adresse:

références en C ++, ++ variables de référence

Le résultat du programme:

références en C ++, ++ variables de référence

Je ne veux pas vraiment à la charge vous plus d'informations sur les liens. Ils sont le plus souvent utilisé est de passer des paramètres à une fonction. Dans le rôle des paramètres des variables peuvent agir, tableaux (il nous est familier). Mais plus important encore – le lien vers la fonction donnée aux structures d'objets et des classes. Le temps viendra et nous en reparlerons.

la seule, en ce qui concerne la syntaxe, Si vous devez déclarer un lien vers le programme, il doit être immédiatement initialiser (montrent une variable, il est créé). par exemple:

références en C ++, ++ variables de référenceAinsi, le programme que nous pouvons utiliser le nom de référence pour la future référence aux données, que les magasins aaa. Autrement dit, si par exemple quelqu'un est à vous d'écrire le code et a donné le nom de la variable aaa. Ce programmeur sait, il stocke le nombre de boîtes. et vous, pour votre commodité, compte tenu de l'alias de variable amountOfBoxes et utiliser un nouveau nom, annexant un nouveau code dans un programme.

Je vous suggère de regarder une vidéo sur les paramètres de la fonction, y compris où et parlé de liens.




Bulletin de nouvelles leçons sur la programmation:

Références en C ++
5 (100%) 2 votes

5 réflexions sur "Références en C ++

  1. lien – est un autre nom de la variable, À mon humble avis plus ici pour rien expliquer. une variable, nommer quelques-uns. En tout nom d'une variable, vous pouvez travailler en quelque sorte. Dans le cas des liens dans l'argument du même, juste un autre nom de la variable sera visible dans la fonction.

    Eh bien, quelques exemples, j'ajouterais.

    inutilement. aiguille – il est également variable (simplement stocke l'adresse d'un objet), puis la fonction peut passer une référence à un pointeur tel que
    void foo(int &*arr);
    Quel type de.

    Et un autre exemple, est 2 fonctions:
    void foo(int * a);
    bar vide(int &une);
    La première a une référence d'objet, deuxième- aiguille.

    Quelque part dans le programme (par exemple dans la fonction principale est l'objet:
    int était = 123;

    Si vous devez passer à la première fonction – nous devons obtenir l'adresse d'un objet:
    foo(&était);
    dans le deuxième – vous pouvez simplement transférer, tandis qu'à l'intérieur de la fonction utilisera le nom alternatif de l'objet
    bar(était);
    Si nous devons définir un pointeur vers un objet – il doit aussi être l'adresse initialisée:
    int * p = &était;

    A l'intérieur de la première fonction avec l'objet de travaux comme d'habitude (parce que nous avons juste un autre nom):
    void foo(int &une) { a = 456; }

    Dans la deuxième fonction, nous avons un pointeur, donc forcé de déréférencer pour accéder à l'objet:
    bar vide(int * a) { *a = 789; }
    // si un – aiguille,
    // la (*une) – objet,
    // et (&(*une)) – Adresse supports d'objets peuvent être retirés, поставил для ясности (они отражают приоритеты).

  2. Ссылкидостаточно неприятное для начинающих понятие в C++ (хотя совершенно естественное даже для начинающих в Java или Python).

    Pour les débutants peuvent dire (bien qu'il ne soit pas tout à fait tocho):
    – référence variable – il est exactement le même, comme un pointeur vers elle, mais à ce lien, Contrairement à pointeur, нельзя применять адресную арифметику (+, -, ++, –).

    Это неточно по смыслу, но сразу позволяет использовать ссылки в своём коде без ошибок.

    1. Oleg, отлично что Вы уделяете внимание нашим статьям и делаете важные заметки к изложенному материалу. Спасибо и от админа сайта и, думаю, от посетителей )

    2. Ни один начинающий тебя не понимает. Твои объяснения совсем непонятны, следующая статься твоя и понять ее очень сложно, impossible. А вот эта статья очень легка к восприятию. Не надо больше статей как Указатели на функции

      1. ce que cela signifie “ни один”? Non seulement comprendre le plus stupide ;-) … autres quoi que ce soit, oui comprendre.

        programmation – il est généralement pas simple ingénierie discipline, et expliquer “sur le pouce” impossible nocivement de la même manière, comment, par exemple, матанализ или начертательную геометрию.

        И освоить программирование смогут только те, кто будут много и упорно практиковаться и самостоятельно писать код.

        P.S. А от обучения на уровне объясненийдважды два, детки, получается иногда четыре, если не возражаете” – никто и ничему не научится, возникнет только иллюзия чтоя тоже чему-то там учился”.

Laisser un commentaire

Votre adresse email ne sera pas publiée. les champs requis sont indiqués *