2012-04-10 13 views
0

Ich lese gerade ein C++ Buch, und ich habe ein paar Fragen.Klasse und Mitglied Funktion (Anfänger)

1) Wird void in diesem Beispiel nur zur Angabe eines Rückgabetyps verwendet?

2) Wenn void bewirkt, dass KEINE Daten an die aufrufende Funktion zurückgegeben werden, warum wird immer noch die Meldung "Willkommen im Notenbuch" angezeigt?

3) Ist es nicht einfacher, eine einfache Funktion zu erstellen, anstatt ein Objekt zu erstellen?

#include <iostream> 
using namespace std; 

class GradeBook 
{ 
public: 
    void displayMessage() 
    { 
     cout << "Welcome to the Grade Book!" << endl; 
    } 
}; 

int main() 
{ 
    GradeBook myGradeBook; 
    myGradeBook.displayMessage(); 
} 

Antwort

5
  1. , dass der einzige Einsatz in diesem Beispiel ist. Sie können auch Zeiger auf void (void *) haben.
  2. Sie geben diese Nachricht nicht zurück. Du druckst es. In C++ können Methoden und Funktionen Nebenwirkungen haben. Ein möglicher Nebeneffekt ist die Ausgabe.
  3. Ja, in diesem Fall. Dies ist jedoch kein realistisches Beispiel für die Vorteile von Objekten. Dazu siehe unter How do I describe Object-Oriented Programing to a beginner? Is there a good real-world analogy? unter vielen Orten.
+0

Was ist der Nutzen von Objekten ist? – Foxic

+0

@ 30trix: Die Beantwortung dieser Frage kann mehrere Bücher füllen. Ich glaube nicht, dass Sie in einem Kommentar eine vollständige und nützliche Antwort erhalten. –

1

Ist void verwendet nur einen Rückgabetyp in diesem Beispiel zu erklären?

Ja, es zeigt an, dass displayMessage() nichts zurück zum Anrufer zurückgibt.
Es kann auch als void * verwendet werden, d. H .: Ein generischer Zeiger, der auf alles zeigen kann, aber in diesem Beispiel nicht so verwendet wird.

Wenn void bewirkt, dass Daten nicht an die aufrufende Funktion zurückgegeben werden, warum wird immer noch die Meldung "Willkommen im Notenbuch" angezeigt?

Die Nachricht wird an den Aufrufer der Funktion nicht zurückgegeben, wird die Nachricht an die Standardausgabe gerichtet, wenn die Steuerung in der Funktion ist und dass bestimmte Anweisung ausführt.

Ist es nicht einfacher, eine einfache Funktion zu erstellen, anstatt ein Objekt zu erstellen?

Es ist keine Frage der Leichtigkeit. Es ist eher eine Frage objektorientierter Designprinzipien.
Der Zweck von Klassen und Elementfunktionen besteht darin, die Daten und die Methoden, die mit diesen Daten arbeiten, in einer einzigen Einheit zu verbinden. Vielleicht möchten Sie ein gutes Buch aufheben und lesen Encapsulation & Abstraktion.

The Definitive C++ Book Guide and List

0
  1. die Funktion "displayMeassage" In Ihrem Fall wird die Zeichenfolge nicht zurückkehrt, druckt es Ihre Nachricht einfach.

  2. Mittel zurückkehrend sei angenommen, ein Beispiel:

    Klasse A

    {

    int num=0; 
    
        int getNum() 
    
        { 
    
        return num; 
    
        } 
    

    };

    void main()

    {

    A a; 
    
        int no=a.getNum(); 
    
        cout<<"no : "<<no; 
    

    }

    Im obigen Beispiel dann Art und Weise getNum die Zahl zurückgibt, die Rückkehr ist das, was ist
    genannt.

  3. Was auch immer Sie das Beispiel nehmen, ist nicht gut, das Rückkehrkonzept zu verstehen.

Dank

Verwandte Themen