C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でNULLクラスポインタを介してクラスメソッドを呼び出す


クラスメソッドはNULLクラスポインタを使用して呼び出すことができます。

−これは未定義の動作であり、プログラムの実行についての保証はありません。実際の結果は、使用するコンパイラによって異なります。

これを実証するプログラムは次のとおりです。

#include <iostream>
using namespace std;
class Example {
   public :
   void func() {
      cout << "The function is called through Null class pointer.";
   }
};
int main() {
   Example *p = NULL;
   p->func();
   return 0;
}

出力

上記のプログラムの出力は次のとおりです。

The function is called through Null class pointer.

それでは、上記のプログラムを理解しましょう。

クラスExampleには、メンバー関数func()が含まれています。この関数は、「関数はNullクラスポインタを介して呼び出されます」と表示します。このためのコードスニペットは次のとおりです。

class Example {
   public :
   void func() {
      cout << "The function is called through Null class pointer.";
   }
};

関数main()で、クラスnullポインタpが作成されます。次に、pを使用してfunc()が呼び出されます。このためのコードスニペットは次のとおりです。

int main() {
   Example *p = NULL;
   p->func();
   return 0;
}

  1. C++のNULLオブジェクトポインタでメンバー関数を呼び出す

    クラスメンバー関数はNULLオブジェクトポインタを使用して呼び出すことができます。 注 −これは未定義の動作であり、プログラムの実行についての保証はありません。実際の結果は、使用するコンパイラによって異なります。 これを実証するプログラムは次のとおりです。 例 #include <iostream> using namespace std; class Demo {    public :    void fun() {       cout << "This member functi

  2. C++のローカルクラス

    関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main() {    return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ