Verwenden von Standardparametern für Funktionen in C++

Jinku Hu 12 Oktober 2023
  1. Verwenden Sie Standardparameter, um eine Funktion in C++ zu definieren
  2. Standardparameter zur Implementierung von Klassenkonstruktoren in C++ verwenden
Verwenden von Standardparametern für Funktionen in C++

In diesem Artikel werden verschiedene Methoden zur Verwendung von Standardparametern für Funktionen in C++ erläutert.

Verwenden Sie Standardparameter, um eine Funktion in C++ zu definieren

Das Konzept der Standardparameter ermöglicht es, Standardargumentwerte in einer Funktionsdefinition anzugeben, die verwendet wird, falls der Benutzer an seiner Stelle kein Argument übergibt. Daher können Funktionen optionale Argumente haben, die intern einen Standardwert verwenden können, um einige Objekte während des Funktionsblocks zu initialisieren. Standardparameter werden in einem Funktionsprototyp nach jedem Argumentnamen mit dem Symbol = und dem entsprechenden Wert angegeben. Beispielsweise implementiert das folgende Codefragment eine Funktionsvorlage sumNumbers, die höchstens vier Zahlen summieren kann. Der Benutzer muss jedoch nicht alle vier Werte angeben. Im Gegenteil, nur zwei ganze Zahlen reichen für die Operation aus.

#include <iostream>
#include <string>
#include <utility>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

template <typename T>
T sumNumbers(T x, T y, T z = 0, T w = 0) {
  return (x + y + z + w);
}

int main() {
  vector<int> vec = {1, 4, 8, 16, 20, 24, 28, 32};

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1]) << ": ";
  }
  cout << endl;

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1], vec[i + 2]) << ": ";
  }
  cout << endl;

  for (size_t i = 0; i < vec.size(); ++i) {
    cout << sumNumbers(vec[i], vec[i + 1], vec[i + 2], vec[i + 3]) << ": ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Ausgabe:

5: 12: 24: 36: 44: 52: 60: 32
13: 28: 44: 60: 72: 84: 60: 32:
29: 48: 68: 88: 104: 84: 60: 4145:

Standardparameter zur Implementierung von Klassenkonstruktoren in C++ verwenden

Ein weiteres nützliches Szenario, in dem das Konzept der Standardparameter verwendet werden kann, ist der Klassenkonstruktor. Manchmal müssen die Klassenkonstruktoren einige Datenelemente mit Standardwerten initialisieren, wenn der Benutzer die Argumente nicht bereitstellt. Wir können einen Konstruktor mit den Standardparametern implementieren, der einen anderen Konstruktor mit Standardwerten aufruft, wie im folgenden Beispielcode gezeigt.

#include <iostream>
#include <string>
#include <utility>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

class MyClass {
  string name;
  int height;
  int width;

 public:
  MyClass(string s, int h, int w) : name(std::move(s)), height(h), width(w) {}
  MyClass() : MyClass("", 0, 0) {}
  explicit MyClass(string s) : MyClass(std::move(s), 0, 0) {}

  void printMyClass() {
    cout << "name: " << name << endl
         << "height: " << height << endl
         << "width: " << width << endl;
  }
};

int main() {
  MyClass M1;
  MyClass M2("Jay", 12, 103);

  M1.printMyClass();
  cout << endl;
  M2.printMyClass();

  return EXIT_SUCCESS;
}

Ausgabe:

name:
height: 0
width: 0


name: Jay
height: 12
width: 103
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - C++ Function