Ich lerne grundlegende Konzepte von OOP in C++ und stieß auf ein logisches Problem.Objektorientierte Programmierlogik
#include <iostream>
#include <conio.h>
using namespace std;
class A {
int i;
public:
void set(int x) {
i=x;
}
int get() {
return i;
}
void cpy(A x) {
i=x.i;
}
};
int main()
{
A x, y;
x.set(10);
y.set(20);
cout << x.get() << "\t" << y.get() << endl;
x.cpy(y);
cout << x.get() << "\t" << y.get() << endl;
getch();
}
Ich wollte in dem obigen Code wissen, warum ich in der Lage sind x.i
[Zeile 19], um es ein privates Mitglied in dem verschiedenen object.Isn't ist der private Umfang auch auf die gleiche Klasse beschränkt, wenn Das Objekt wird als Parameter übergeben?
Denken Sie darüber nach, wie hässlich eine so häufige Aufgabe wie Ihr Beispiel wäre, wenn es nicht erlaubt wäre. Der Punkt von "privat" ist nicht den Zugriff von "fremden" Objekten zu beschränken, sondern _code_ einzukapseln. Und der Code in einer Klasse beschäftigt sich niemals wirklich mit irgendeinem bestimmten Objekt, außer mit dem "This" -Zeiger, der implizit an jede nichtstatische Elementfunktion übergeben wird. – leftaroundabout