C ++, estos tres tipos de relaciones son las siguientes:
Hay que entender primero: función miembro estática puede llamar a los miembros de datos no estáticos, específicamente cómo llamar, véase más adelante.
clase A
{
público:
diversión static void (A a)
{
cout << b << endl; (错误)
cout << ab << endl; (正确)
}
privte:
b int;
}
Al igual que en el ejemplo anterior, si la función de miembro estático para llamar miembro de datos no estático, debe ser mediante una llamada específica objeto, ¿por qué?
La razón: Dado que las funciones miembro estáticas y miembros de datos no estáticos son propiedad de toda la clase, no es específico de un objeto específico, para llamar a la función miembro estática no es la finalidad del objeto, a diferencia de la función miembro no estática ya que hay una sabemos que esto es como objetos implícitos de esta clase a los miembros acceso no estáticos. Así parámetro de la función miembro debe haber una manera de acceder a un objeto de un miembro de datos específico no estáticos.
resumen:
(1) función miembro estática puede llamar directamente a los miembros de datos estáticos y funciones miembro no estáticos de la clase, pero llamar a los miembros de datos no estáticos cuando sea necesario para llamar el parámetro objeto pasado por cierto.
(2) En general, (1) Tampoco se recomienda llamar a esto los miembros de datos no estáticos, el papel principal es el de los miembros de datos función miembro estática de acceso estáticos de una clase, el mantenimiento de intercambio de datos entre los objetos.