Wie verstecken Sie private Mitglieder einer Klasse?

8

Ich benutze Visual Studio seit einiger Zeit und es ärgert mich jedes Mal, wenn ich mit Klassen arbeite. Das Problem ist, wenn ich ein Objekt einer Klasse erstelle, sehe ich, dass die privaten Mitglieder zu dieser Klasse gehören und ich möchte das nicht, denn was passiert, wenn ich eine Klasse mit 10+ privaten Variablen erstelle, dann wird es ein Alptraum , Es muss einen Weg geben, private Mitglieder zu verstecken, Wenn es einen Weg gibt, kannst du es bitte mit mir teilen? Danke:)

BEARBEITEN:

Hier ist ein Bild, das Ihnen helfen wird zu verstehen, worüber ich rede,

hier zum Beispiel habe ich 2 private Variablen der LinkedList-Klasse (curSize und head) Ich kann sie nicht von main ändern, also ist es sinnlos, sie zu sehen (oder?) Wie kann ich sie verstecken, ohne meinen Code zu ändern? Gibt es dafür eine Einstellung in Visual Studio?

    
Malkavian 27.01.2012, 00:05
quelle

3 Antworten

4

Leider ist dies in der aktuellen Version von Visual Studio nicht möglich. In C ++ wird die IntelliSense-Liste nicht nach Accessibility oder Scope gefiltert. Daher werden private Mitglieder immer noch angezeigt, selbst wenn sie von Ihrem Code nicht erreichbar sind. Es gibt keine Einstellungen, um dieses Verhalten zu optimieren.

Sie müssen sich nur auf das Schlosssymbol verlassen, um anzuzeigen, dass sie privat sind und daher nicht zugänglich sind. All diese kleinen Symbole im IntelliSense-Fenster do haben eine Bedeutung , weißt du.

Aber es sieht so aus, als könnte diese Funktion in der nächsten Version von Visual Studio (VS11) erscheinen. MSDN sagt :

  

Mitgliedererweiterungen auflisten . Das Dropdown-Menü Listenelemente wird automatisch angezeigt, wenn Sie Code in den Code-Editor eingeben. Die Ergebnisse werden gefiltert, sodass nur relevante Mitglieder während der Eingabe angezeigt werden. Sie können den Typ der Filterlogik, die von der Mitgliederliste verwendet wird, im Dialogfeld Optionen unter Texteditor, C / C ++, Erweitert steuern.

So albern wie es ist, bin ich auch ziemlich aufgeregt. Zusammen mit anderen coolen Sachen wie besserer Syntax-Hervorhebung und Referenz-Hervorhebung. Die Entwicklervorschau ist bereits veröffentlicht. Sie können also versuchen, sie zu verwenden, wenn Sie möchten, aber möglicherweise nicht zur Prime Time bereit sein. Und das ist zugegebenermaßen ein mieser Grund für ein Upgrade ...

Alternativ können Sie in Visual Assist X investieren. Dies ist eine Erweiterung, die für mehrere Versionen von Visual Studio verfügbar ist Convenience-Funktionen für die C ++ - IDE und verbessert die IntelliSense-Filterung. Es ist nicht kostenlos, aber es ist ziemlich toll für C ++ Entwickler, und wenn ich nicht arm / pleite / billig wäre, würde ich es definitiv selbst kaufen.

    
Cody Gray 27.01.2012, 03:34
quelle
5

Dies ist vielleicht nicht die beste Antwort, noch ist es eine schöne Antwort, aber es ist die Arbeit erledigt und wenn Sie mit einer kleinen Syntaxänderung leben können, wird es definitiv funktionieren. Ein Trick, den ich aus der Beobachtung von std-Klassen wie std :: vector gelernt habe, ist, dass sie private Mitglieder mit dem Präfix _ bezeichnen, wodurch alle privaten Mitglieder bis zum Ende der Intellisense gezwungen werden. Es entfernt sie nicht aus der Liste, aber es wird sie alle ganz nach unten bewegen, so dass sie Sie nicht stören, wenn Sie die Liste scrollen. Hier ist ein Beispiel:

%Vor%     
idunnololz 18.11.2012 20:50
quelle
4

Sie können Regionen wie folgt verwenden:

%Vor%

Visual Studio zeigt neben der Zeile - ein kleines #region an. Klicken Sie darauf, um die Variablen auszublenden.

    
dasblinkenlight 27.01.2012 00:09
quelle