Función auxiliar de C++ en clase

Sheeraz Gul 12 octubre 2023
Función auxiliar de C++ en clase

Este tutorial demuestra cómo implementar una función auxiliar en una clase en C++.

Función auxiliar de C++ en clase

Una función auxiliar es una función de la que los usuarios finales no crean una instancia, pero que proporciona una funcionalidad útil que se usa dentro de otra clase internamente. Si la función no es miembro de la clase sino de alguna otra clase, el programa C++ creará una función auxiliar para imprimir o usar los datos para otros fines.

El escritor de la clase suele proporcionar una función de ayuda, que no necesita acceder directamente a la representación de la clase. Probemos un ejemplo en C++ que implementa la función auxiliar.

#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;
}

El código anterior usa la función auxiliar en clase para comparar dos vectores. El resultado de este código cuando los dos vectores no son iguales se muestra a continuación.

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 !

Y cuando los vectores son iguales, lo que significa que cambiamos los valores de los vectores de:

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

A:

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

En este caso, la salida será:

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!

Podemos ignorar la última línea porque proviene de la condición else; se establece para el escenario de no igualdad. Por ejemplo, si los valores son:

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

La salida para estos valores será:

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