Public vs. Private


public vs. private

In the code below, the public keyword is used to indicate that all member functions and all member variables are public. That is, it is possible to call any member functions of the Book class from a non-member function of the class. On the other hand, the private keyword may be used to restrict the access to some member functions or some member variables of a class. When a member function is private, it can be called only from other member functions of the same class. Observe that structured programming does not provide any kind of restriction in the program functions or variables.
En el código debajo, la palabra clave public es usada para indicar que todas las funciones miembro y todas las variables miembro son públicas. Así, es posible llamar cualquier función miembro de la clase Book desde funciones que no son miembro de la clase. La palabra clave private es usada para restringir el acceso a algunas funciones miembro o a algunas variables de la clase. Cuando una función miembro es privada, ésta puede ser llamada solamente desde otras funciones miembro de la misma clase. Observe que la programación estructurada no proporciona ningún tipo de restricción en el llamado a las funciones o accesso a las variables de un programa.

Book.h
#pragma once
class Book
{
public:
     Book(void);
     ~Book(void);
     COLORREF color;
     int numbPages;
     wstring author;
     int year;
     double price;
     void Reset();
     void IncreasePrice(double percent);
};


Book.cpp
Book::Book(void)
{
     Reset();
}
...

Tip
Private member functions are used to simplify the implementation of a class. Consider, for instance, the Book class declared below. The Reset() function sets all member variables to an initial value, and it is being called from the constructor. If the private keyword is place as shown below, then it is not possible to externally call the Reset() function. Thus, the call to the Reset() function from the Window_Open function shown below will generate a compilation error.
Las funciones miembro privadas son usada para simplificar la implementación de una clase. Considere, por ejemplo, la clase Book declarada debajo. La función Reset() fija todas la variables miembro en un valor inicial, y esta es llamada desde el constructor. Si la palabra clave private es colocada como se muestra debajo, entonces no es posible llamar en forma externa a la función Reset(). Así, la llamada a la función Reset() desde la función Window_Open mostrada debajo generará un error de compilación.

Book.h
#pragma once
class Book
{
public:
     Book(void);
     ~Book(void);
     COLORREF color;
     int numbPages;
     wstring author;
     int year;
     double price;
     void IncreasePrice(double percent);
private:
     void Reset();
};

Library.cpp
...

void Library::Window_Open(Win::Event& e)
{
     Book book;
     book.Reset(); //THIS WILL GENERATE A COMPILATION ERROR
}


Problem 1
Indicate if the following statement is true or false: Private member functions can only be called from other member functions of the class, and include code that otherwise would be duplicated or replicated in the class.
Indique si el siguiente enunciado es verdadero o falso: Las funciones miembro privadas pueden ser llamadas solamente desde otra función miembro de la clase, e incluyen código que de otro modo podría estar duplicado o replicado en la clase.

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home