Maison  >  Article  >  développement back-end  >  Techniques de programmation courantes pour transmettre des paramètres de fonction en C++

Techniques de programmation courantes pour transmettre des paramètres de fonction en C++

WBOY
WBOYoriginal
2024-04-12 22:18:01348parcourir

Les méthodes de transmission des paramètres de fonction en C++ incluent : transmettre la valeur (copier la valeur du paramètre réel) transmettre la référence (exploiter directement la valeur du paramètre réel) transmettre le pointeur (accéder directement à l'adresse du paramètre réel) transmettre la référence const ( lire la valeur du paramètre réel, mais il ne peut pas être modifié)

C++ 函数参数传递方式的常见编程技巧

Conseils de programmation courants pour transmettre les paramètres de fonction en C++

En C++, les paramètres de fonction peuvent être transmis de quatre manières : transmettre une valeur, transmettre une référence, passage du pointeur et passage de la référence const. Pour différents besoins, différentes méthodes de livraison sont plus adaptées.

Appel par valeur

La transmission d'une valeur est le moyen le plus simple et le plus direct, c'est-à-dire copier la valeur du paramètre réel à l'intérieur de la fonction. L'avantage est que les modifications apportées aux paramètres réels n'affectent pas la valeur des paramètres réels eux-mêmes. Exemple :

void increment(int num) {
  num++;  // 只能更改 num 的局部副本
}

int main() {
  int x = 5;
  increment(x);  // x 的副本被传递给 increment()
  cout << x;  // 输出 5,x 不会改变
}

Appel par référence

Le passage d'une référence permet à la valeur du paramètre réel d'être directement manipulée dans la fonction. L’avantage est que cela évite le processus de transfert de valeur et améliore l’efficacité. Exemple :

void increment(int& num) {
  num++;  // 直接更改实参的值
}

int main() {
  int x = 5;
  increment(x);  // x 的引用被传递给 increment()
  cout << x;  // 输出 6
}

Appel par pointeur

Le passage d'un pointeur permet d'accéder directement à l'adresse du paramètre réel dans la fonction. L'avantage est qu'il peut effectuer des opérations plus flexibles sur le contenu pointé par le pointeur. Exemple :

void swap(int* a, int* b) {
  int temp = *a;
  *a = *b;
  *b = temp;
}

int main() {
  int x = 5, y = 7;
  swap(&x, &y);  // 传递 x 和 y 的地址
  cout << x << " " << y;  // 输出 7 5
}

Appel par référence const

Passer une référence const est similaire à passer une référence, mais la fonction ne peut pas modifier la valeur du paramètre réel. L'avantage est que les modifications accidentelles sont évitées et que la sécurité du code est améliorée. Exemple :

void print(const int& num) {
  cout << num;  // 只读访问实参
}

int main() {
  int x = 5;
  print(x);  // x 的 const 引用被传递给 print()
}

Cas pratique

Lors du calcul de l'aire d'un cercle, le paramètre de la fonction peut être le rayon du cercle. Afin d'éviter la surcharge supplémentaire causée par la transmission d'une valeur, vous pouvez choisir de transmettre une référence et laisser la fonction opérer directement sur la valeur du rayon.

#include <cmath>

double calculateArea(double& radius) {
  return M_PI * radius * radius;
}

int main() {
  double radius;
  cout << "Enter the radius of the circle: ";
  cin >> radius;
  cout << "The area of the circle is: " << calculateArea(radius) << endl;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn