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

main関数はC++でそれ自体を呼び出すことができますか?


main()関数はC++でそれ自体を呼び出すことができます。これは再帰の例です。これは、関数がそれ自体を呼び出すことを意味します。これを実証するプログラムは次のとおりです。

#include<iostream>
using namespace std;
int main() {
   static int x = 1;
   cout << x << " ";
   x++;
   if(x == 11) {
      return 0;
   }
   main();
}

出力

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

1 2 3 4 5 6 7 8 9 10

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

変数xは、main()の静的変数です。その値が表示されてから、増分されます。次に、ifステートメントを使用して、プログラムを終了する手段を提供します。そうしないと、プログラム自体が無限に呼び出されます。 xの値が11になると、プログラムは終了します。最後に、関数main()は、関数呼び出しmain()を使用して自分自身を呼び出します。このためのコードスニペットは次のとおりです。

int main() {
   static int x = 1;
   cout << x << " ";
   x++;
   if(x == 11) {
      return 0;
   }
   main();
}

  1. C ++のコンストラクター内で仮想関数を呼び出す方法は?

    コンストラクタまたはデストラクタから仮想関数を呼び出すことは危険であり、可能な限り避ける必要があります。これは、呼び出す仮想関数が派生クラスではなく基本クラスから呼び出されるためです。 C ++では、すべてのクラスが独自の構造に入る前に、そのバージョンの仮想メソッドテーブルを構築します。したがって、コンストラクターで仮想メソッドを呼び出すと、Baseクラスの仮想メソッドが呼び出されます。または、そのレベルで実装がない場合は、純粋仮想メソッド呼び出しが生成されます。 Baseが完全に構築されると、コンパイラはDerivedクラスの構築を開始し、Derivedクラスの実装を指すようにメソッドポイ

  2. MATLABからPython関数を呼び出すにはどうすればよいですか?

    PythonライブラリがMATLABで利用できるようになりました(2014b以降)。バージョン2014b以降を使用している場合は、MATLABでコードを直接実行できます。 これにより、MATLABでPythonモジュールを使用できるようになります。他に変更を加えることなく、使用するPythonライブラリ名の前に「py」を付けるだけです。例としてPythonカレンダーモジュールを使用してみましょう。 py.calendar.isleap(2016); py.calendar.isleap(2017); 出力 ans =1 ans = 0 独自の関数を実行するために、現在のMATLAB作業デ