C++-Hilfsfunktion in der Klasse

Sheeraz Gul 12 Oktober 2023
C++-Hilfsfunktion in der Klasse

Dieses Tutorial zeigt, wie Sie eine Hilfsfunktion in einer Klasse in C++ implementieren.

C++-Hilfsfunktion in der Klasse

Eine Hilfsfunktion ist eine Funktion, die nicht von den Endbenutzern instanziiert wird, aber eine nützliche Funktionalität bereitstellt, die intern in einer anderen Klasse verwendet wird. Wenn die Funktion kein Mitglied der Klasse, sondern einer anderen Klasse ist, erstellt das C++-Programm eine Hilfsfunktion, um die Daten zu drucken oder für andere Zwecke zu verwenden.

Eine Hilfsfunktion wird normalerweise vom Schreiber der Klasse bereitgestellt, die nicht direkt auf die Repräsentation der Klasse zugreifen muss. Lassen Sie uns ein Beispiel in C++ ausprobieren, das die Hilfsfunktion implementiert.

#include <iostream>
#include <vector>

template <typename Delftstack>
void print(const std::vector<Delftstack>& DemoVec) {
  typename std::vector<Delftstack>::const_iterator x;
  for (x = DemoVec.begin(); x != DemoVec.end(); x++) std::cout << *x << "  ";
  std::cout << std::endl;
}

int main() {
  std::vector<int> vector1, vector2;
  vector1.assign(7, 3);
  vector2.assign(7, 6);

  std::cout << "Vector 1 : ";
  print(vector1);

  std::cout << "Vector 2 : ";
  print(vector2);

  if (vector1 == vector2)
    std::cout << "vector 1 and Vector 2  are lexicographically equal!"
              << std::endl;

  else
    std::cout << "vector 1 and vector 2 are lexicographically not equal!"
              << std::endl;

  if (vector1 > vector2)
    std::cout << "vector 1 is lexicographically greater than vector 2!"
              << std::endl;

  else
    std::cout << "vector 2 is lexicographically greater than vector 1!"
              << std::endl;
}

Der obige Code verwendet die Hilfsfunktion in der Klasse, um zwei Vektoren zu vergleichen. Die Ausgabe für diesen Code, wenn die beiden Vektoren nicht gleich sind, ist unten.

Vector 1 : 3  3  3  3  3  3  3
Vector 2 : 6  6  6  6  6  6  6
vector 1 and vector 2 are lexicographically not equal !
vector 2 is lexicographically greater than vector 1 !

Und wenn die Vektoren gleich sind, ändern wir die Werte der Vektoren von:

vector1.assign(7, 3);
vector2.assign(7, 6);

Zu:

vector1.assign(7, 3);
vector2.assign(7, 3);

In diesem Fall lautet die Ausgabe:

Vector 1 : 3  3  3  3  3  3  3
Vector 2 : 3  3  3  3  3  3  3
vector 1 and Vector 2  are lexicographically equal!
vector 2 is lexicographically greater than vector 1!

Die letzte Zeile können wir ignorieren, da sie aus der else-Bedingung stammt; es ist für das Ungleichheitsszenario eingestellt. Wenn die Werte beispielsweise lauten:

vector1.assign(7, 6);
vector2.assign(7, 3);

Die Ausgabe für diese Werte ist:

Vector 1 : 6  6  6  6  6  6  6
Vector 2 : 3  3  3  3  3  3  3
vector 1 and vector 2 are lexicographically not equal!
vector 1 is lexicographically greater than vector 2!
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook