ホームページ >バックエンド開発 >C++ >C++ 関数パラメータ引き渡しメソッドとオブジェクト メンバー関数の関係

C++ 関数パラメータ引き渡しメソッドとオブジェクト メンバー関数の関係

PHPz
PHPzオリジナル
2024-04-12 12:15:021014ブラウズ

C 関数パラメータは、値または参照によって渡すことができます。オブジェクト メンバー関数のパラメータ受け渡しでは、this ポインタも考慮されます。デフォルトでは、this ポインタは暗黙的なパラメータとして渡されます。非参照パラメータはデフォルトで値によって渡され、参照パラメータは暗黙的にこれを指します。

C++ 函数参数传递方式与对象成员函数的关系

#C 関数パラメータ受け渡しメソッドとオブジェクト メンバー関数の関係

C では、関数パラメータは次の 2 つの方法で渡されます。値渡しと参照渡し。オブジェクト メンバー関数の場合、パラメーターの受け渡し方法について追加の考慮事項があります。

値による受け渡し

パラメータが値によって渡されると、関数はパラメータのコピーを取得します。コピーに加えられた変更は元のデータには影響しません。

参照渡し

パラメーターが参照によって渡される場合、関数は元のデータに直接アクセスします。関数内のパラメーターに加えられた変更は、関数が呼び出された後の元のデータへの変更に反映されます。

オブジェクト メンバー関数のパラメーターの受け渡し

オブジェクト メンバー関数がパラメーターを受け入れない場合、デフォルトで

this ポインターが使用されます。メンバー関数に渡される暗黙的なパラメーター。 this ポインターは、メンバー関数を呼び出すオブジェクトを指し、オブジェクト データへのアクセスと変更を可能にします。

オブジェクト メンバー関数がパラメーターを受け入れる場合、パラメーターの受け渡しは通常の関数と同じ方法に従います。ただし、次の点に注意する必要があります。

    非静的メンバー関数の非参照パラメーターは、デフォルトで値によって渡されます。
  • 非静的メンバー関数の参照パラメーターは、
  • this->field であるかのように、暗黙的に this を指します。

実際的なケース

例を使用して、オブジェクト メンバー関数のパラメーター受け渡し方法を説明します。

name メンバー変数:

class Person {
public:
    string name;

    void printName() {
        cout << "Name: " << name << endl;
    }
    
    void changeName(string newName) {
        name = newName;
    }
};

パス値:
  • を持つ Person クラスがあるとします。 #
    int main() {
        Person person;
        person.name = "John Doe";
    
        string newName = "Jane Doe";
        person.changeName(newName);
    
        person.printName(); // 输出:Name: Jane Doe
    
        // newName 变量不会受到函数调用影响,仍然是 "Jane Doe"。
    }
    引用を渡す:
  • int main() {
        Person person;
        person.name = "John Doe";
    
        string& newName = person.name;
        newName = "Jane Doe";
    
        person.printName(); // 输出:Name: Jane Doe
    
        // newName 变量和 name 成员变量都指向同一个地址,因此更改 newName 会影响 name。
    }

以上がC++ 関数パラメータ引き渡しメソッドとオブジェクト メンバー関数の関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。