2017-07-11 16 views
-6

私は自分でC++を勉強しています。私は完全に理解していない概念を見つけました。これは主に、関数パラメータがメインブロックとどのように相互作用するかを扱っています。C++クラス/混乱

#include <iostream> 
#include <string> 
using namespace std; 

class GradeBook 
{ 
public: 
    void displayMessage(string courseName) 
    { 
     cout << "Welcome to the gradebook for " << courseName <<endl; 
    } 
}; 

int main() 
{ 
    string nameOfCourse; 

    GradeBook myGradeBook; 
    cout <<"Please enter the course name:" <<endl; 
    getline(cin, nameOfCourse); 
    myGradeBook.displayMessage(nameOfCourse); 

名前をcoursenameとする文字列パラメータを使用して関数を作成します。次に、コードの最後の行を確認します。 'myGradeBook.displayMessage(nameOfCourse); そして、プログラムは、あなたがcourseName変数について話していることを知っています。これは2つの異なる変数であるため、これはどのように可能ですか?私はあなたがdisplaymessageにアクセスするためにmygradebookオブジェクトを使用していることを理解していますが、nameOfCourseのパラメータは私を混乱させます。グレードブックのファンクションクラスとはどのように結びついていますか? これを見ていただきありがとうございます。

+5

'class'esとは関係ありません。あなたは機能を理解していません。 – LogicStuff

+5

あなたは[良いC++の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を使用することができるような音 – NathanOliver

+3

関数が呼び出されると、 nameOfCourse'が 'courseName'にコピーされます。 *値渡しと呼ばれています。 [あなたは良い初心者の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を得ることについて考えるべきだと思います。 –

答えて

1

そして、あなたはcourseName変数について話していることを知っています。これは2つの異なる変数であるため、これはどのように可能ですか?

1つは関数に渡すことによってもう一方にコピーされました。

これは機能の仕組みです。詳細については、C++の本の章の最初のカップルを参照してください。

グレードブックファンクションクラスとはどのように結びついていますか?

まったくありません。関数の引数を渡すだけです。