C ++メンバー関数の性質
C ++では、クラスのメンバー関数は一種の関数であり、戻り値と関数タイプがあります。クラスと一般関数の違いは次のとおりです。
クラスに属するメンバーがクラス本体に表示されます。
プライベート、パブリック、または保護として指定できます。
C ++がクラス関数を使用する場合は、それを呼び出す権限とそのスコープに注意してください。プライベートメンバー関数は、このクラスの他のメンバー関数からのみ呼び出すことができ、クラスの外部から呼び出すことはできません。メンバー関数はこのクラスにアクセスできます。メンバーは、このスコープ内の有効なデータを参照できます。
一般的なアプローチは、外部から呼び出す必要のあるメンバー関数をパブリックとして指定することです。これらはクラスの外部インターフェイスですが、すべてのメンバー関数をパブリックとして指定する必要があるわけではないことに注意してください。
C ++では、一部の関数は外部で呼び出されることを意図していませんが、このクラスのメンバー関数によって呼び出されるため、プライベートとして指定する必要があります。この種の関数の機能は、他の関数の操作をサポートすることであり、クラスの他のメンバーの関数であり、クラス外のユーザーはこれらのプライベート関数を呼び出すことはできません。
クラスのメンバー関数は、クラス本体の非常に重要な部分です。クラスにメンバー関数が含まれていない場合、それはC言語の構造と同等であり、読者は特別な注意を払う必要があります。
C ++クラス定義メンバー関数
上記のメンバー関数はクラス本体で定義されています。C++では、クラス本体にメンバー関数宣言のみを記述し、クラス外で関数を定義することもできます。
クラス外でprint関数を定義します。
struct Student //用struct来声明一个类类型
{
private: //声明以下为私有的
int number; //学号
char name[10];//姓名
char sex; //性别
public: //声明以下为共有的
void print_info(); //函数声明
};
void Studnet::print_info() //在类外定义打印函数
{
cout<<number<<endl;
cout<<name<<endl;
cout<<sex<<endl;
};
Student stu1,stu2;//定义了Student类对象
C ++がクラス本体で関数を直接定義する場合、関数名の前にクラス名を追加する必要はありませんが、メンバー関数がクラスの外部で定義される場合、クラス名は関数名の前に追加する必要があります。
//作用域限定符
∷
C ++では、スコープ修飾子を使用して、関数が属するクラスを宣言します。スコープ演算子の前にクラス名がない場合、または関数名の前にクラス名もスコープ修飾子もない場合は、関数がどのクラスにも属していないため、この関数はメンバー関数ではなく、グローバル関数です。
C ++クラス関数は、最初にクラス本体で宣言してから、クラスの外部で定義する必要があります。つまり、クラス本体の位置は関数定義の前にある必要があります。そうしないと、コンパイル中にエラーが発生します。
関数はクラス外で定義されていますが、メンバー関数が呼び出されると、クラスで宣言された関数プロトタイプに従って関数の定義が検出され、関数が実行されます。
上記を読んで、それがあなたに役立つと思うなら、Xiaolinに褒め言葉を与えてください。Xiaolinも更新する動機を持っています。お父さんと仲間に感謝します
〜C ++メンバー関数の
より多くのケースがパブリックアカウントに行くことができます:C言語エントリ習熟する