0

私は現在 C++ の本を読んでいますが、いくつか質問があります。

1) void は、この例で戻り値の型を宣言するためにのみ使用されていますか?

2) void によって呼び出し元の関数にデータが返されない場合、「成績表へようこそ!」というメッセージがまだ表示されるのはなぜですか?

3) オブジェクトを作るより、単純な関数を作る方が簡単ではありませんか?

#include <iostream>
using namespace std;

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

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

3 に答える 3

5
  1. それがこの例での唯一の使用です。void ( ) へのポインターを使用することもできますvoid *
  2. あなたはそのメッセージを返していません。あなたはそれを印刷しています。C++ では、メソッドと関数に副作用がある場合があります。考えられる副作用の 1 つが出力されます。
  3. はい、この場合。ただし、これはオブジェクトの利点を示す現実的な例ではありません。そのためには、オブジェクト指向プログラミングを初心者に説明するにはどうすればよいですか? を参照してください。現実世界での適切な類推はありますか? 多くの場所の中で。
于 2012-04-10T05:00:30.037 に答える
1

voidこの例では、戻り値の型を宣言するためにのみ使用されますか?

はい、displayMessage()呼び出し元に何も返さないことを示します。
としても使用できますvoid *。つまり、何かを指すことができる汎用ポインターですが、例ではそのように使用されていません。

void によって呼び出し関数にデータが返されない場合、「成績表へようこそ!」というメッセージがまだ表示されるのはなぜですか?

メッセージは関数の呼び出し元に返されません。コントロールが関数内にあり、その特定のステートメントを実行している場合、メッセージは標準出力に送られます。

オブジェクトを作るより簡単な関数を作った方が楽じゃないですか?

簡単なことではありません。それは、オブジェクト指向の設計原則の問題です。
クラスとメンバー関数を持つ目的は、データと、そのデータを操作するメソッドを 1 つのユニットにバインドすることです。良い本を手に取り、Encapsulation & Abstractionを読みたいと思うかもしれません。

The Definitive C++ Book Guide and List

于 2012-04-10T05:02:42.550 に答える
0
  1. あなたの場合、関数「displayMeassage」は文字列を返していません。メッセージを出力しているだけです。

  2. 手段を返す、例を考えてみましょう:

    クラスA

    {

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

    };

    ボイドメイン()

    {

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

    }

    上記の例では、getNum が return と呼ばれる番号を返す方法です

  3. あなたが例を挙げているものは何でも、リターンの概念を理解するのには適していません。

ありがとう

于 2012-04-10T05:06:03.467 に答える