Tecnología

Inicio

Cómo utilizar Friend Funciones en C ++

C ++ ofrece tres niveles de control de acceso a datos dentro de una clase. Los datos privados no es accesible por funciones que no son miembros o fuera de las clases. Pero a veces es necesario acceder a estos datos en un programa, por lo que es necesario encontrar una manera de evitar este C ++ regla. La característica permite a un amigo los datos privados de acceso programador. Sigue leyendo para saber cómo utilizar funciones amigas en C ++.

Instrucciones

1 Encontrar una clase que tiene miembros privados. Recuerde que los datos que no se declara en virtud de un modificador de acceso es privado de forma predeterminada:

Tutorial de clase {

int privateData; // Esto int es privado y está aislado del resto del mundo

público:

Tutorial (): privateData (5); // Constructor predeterminado inicializa privateData a 5

// ...

2 Permitir que una función no miembro a leer privateData en el Paso función no miembros 1. A es cualquier función que existe Tutorial fuera de clase. Preceder a la declaración de esa función por el amigo de palabras clave e insertar la línea en la zona privada del Tutorial:

Tutorial de clase {

int privateData;

amigo Muestra void (); // Nuestra función no miembro

// ...

La palabra clave private dice Tutorial clase que se puede confiar en Pantalla (), a pesar de que no es una de sus funciones miembro.

3 Dejar que otra clase de acceso a los datos privados de clase Tutorial. La declaración de una clase de amigo es similar. Preceder a la declaración de la clase por el amigo de palabras clave e insertar la línea en el área de datos privada de Tutorial:

Tutorial de clase {

int privateData;

amigo Muestra void ();

Fuera de clase friend; // Nuestra clase externa

// ...

Ahora Fuera de clase tiene privilegios de acceso a datos privados.

4 Estudiar un programa en C ++ que muestra los conceptos de amistad, como en el código siguiente:

Void display () {

t tutorial;

cout << t.privateData << endl;

}

Fuera de la clase {

público:

Void display () {

x tutorial;

cout << x.Display () << endl;

};

principal() {

Monitor();

x fuera;

x.Display ();

}

5 Ver el resultado:

5

5

Consejos y advertencias

  • Utilice amigo con buen juicio. Bjarne Stoustrup (el diseñador de C ++) creó el modificador de acceso privado por una buena razón: la encapsulación y la seguridad de los datos. En otras palabras, no utilice "amigo" como un hacker.