Ich habe Code-Cleanup gemacht und mich über etwas Bestimmtes gewundert.
Angenommen, ich habe ein Programm, das kompiliert, ausführt und im Allgemeinen tut, was es soll.
Jetzt verschiebe ich eine bestimmte Klassenmembermethode von public in private (oder protected), und der Code kompiliert immer noch ohne einen Fehler.
Ist es theoretisch möglich, ein solches Szenario zu haben, in dem sich das Verhalten des Programms als Folge der Codeänderung ändert?
Wenn ja, würde ich gerne ein Beispiel sehen.
Der Zugriffsspezifizierer einer Methode hat keinen Einfluss auf das Nachschlagen (er wird stattdessen überprüft, nachdem die Suche abgeschlossen ist). Daher glaube ich nicht, dass versteckte Änderungen in der Funktionalität in Abwesenheit von undefiniertem Verhalten auftreten können (zB haben Sie ein anderes) Version der Klasse, in der die Funktion noch öffentlich ist).
Die Zugriffssteuerung wird nach der Suche überprüft, um sicherzustellen, dass das vorgeschlagene Verhalten das Programmverhalten nicht ändert. Denken Sie daran, dass neu anzuordnende Member-Variablen, auch private, das Verhalten ändern können, da sie in der Reihenfolge konstruiert sind, in der sie in der Klassendeklaration vorkommen.
Tags und Links c++