C 関数は、次の方法で戻り値として参照またはポインタを返すことができます。 参照を返す: 戻り値の型として '&' を使用すると、関数は呼び出し元オブジェクトの値を変更できます。戻りポインター: 戻りの型として「*」を使用すると、関数は呼び出し元オブジェクトが指す値を変更できます。参照またはポインターを使用する場合は、関数が戻った後もオブジェクトが有効なままであることを確認し、コードの明瞭さを損なう不必要な使用を避けてください。
C では、関数は通常、呼び出し元が提供するオブジェクトまたは変数を通じてパラメーターを渡します。 。ただし、関数が呼び出し元オブジェクトへの参照またはポインターを返したい場合があります。これはいくつかの方法で実現できます。
参照を返すには、参照の戻り値の型&
を使用します。例:
int& max(int& a, int& b) { return (a > b) ? a : b; }
この関数は、より大きな数値への参照を返し、呼び出し元が元の値を変更できるようにします。
name
属性を含む学生クラスがあるとします。次のように、生徒の名前への参照を返す関数を作成できます。
class Student { public: string& getName() { return name; } private: string name; }; int main() { Student student; student.getName() = "John Doe"; cout << student.getName() << endl; // 输出:"John Doe" }
ポインタを返すには、戻り値として*
逆参照演算子を使用します。タイプ 。例:
int* max(int* a, int* b) { return (a > b) ? a : b; }
この関数は、より大きな数値へのポインタを返し、呼び出し元が元の値を変更できるようにします。
area
属性を含むシェイプ クラスがあるとします。次のように、シェイプの領域へのポインタを返す関数を作成できます。
class Shape { public: double* getArea() { return &area; } private: double area; }; int main() { Shape shape; *shape.getArea() = 100.0; cout << *shape.getArea() << endl; // 输出:"100" }
以上がC++ 関数はどのように参照またはポインタを戻り値として返すのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。