-
C++でキーワードをオーバーライドする
関数のオーバーライドは、C++の最も一般的な機能です。基本的に、関数のオーバーライドとは、基本クラスに存在し、派生クラスでも定義されている関数を再定義することを意味します。したがって、関数のシグネチャは同じですが、動作は異なります。 ただし、プログラマーがその関数をオーバーライドしているときに間違える場合があります。シグニチャが同じでない場合と同様に、それは別の関数として扱われますが、オーバーライドされたメソッドなどは扱われません。その場合、overrideキーワードを使用できます。このキーワードはC++11で導入されました。コンパイラがこの種のキーワードを見つけると、これが同じクラスのオー
-
ブースト多倍長ライブラリを使用した多数の階乗
多数の階乗を見つけるために、ブーストライブラリを使用できます。このライブラリは、高精度の数値を提供します。 Boost多倍長ライブラリを使用すると、64ビットよりも高い精度を得ることができます。 例 #include <bits/stdc++.h> #include <boost/multiprecision/cpp_int.hpp> using boost::multiprecision::cpp_int; using namespace std; cpp_int Large_Fact(int number) { cpp_int fact =
-
C ++でのset、multiset、unordered_set、unordered_multisetの違い
ここでは、C ++でのset、multiset、unordered_set、およびunordered_multisetの違いを確認します。いくつかの例を使用して、それらのプロパティを見てみましょう。 セット セットのプロパティは次のとおりです データを並べ替えられた順序で保存します 一意の値のみを保存します データを挿入または削除することはできますが、データを変更することはできません 開始イテレータと終了イテレータを使用して複数の要素を削除できます イテレータを使用してトラバースできます セットは二分探索木を使用して実装されます 例を見てみましょう 例 #include <ios
-
C ++の組み込みデータ型の有効範囲を超えるとどうなりますか?
ここでは、C ++の組み込みデータ型の範囲を超えた場合に、結果がどうなるかを確認します。では、いくつかの例を見てみましょう。 1つ目は文字型データです。ここでは、0から300までのループを使用しているため、0から300まで出力してから、停止する必要があります。ただし、1つの無限ループが生成されます。文字型データは-128から127まで保持されます。したがって、127から増加すると、再び-128になります。したがって、ポイント300に到達することはありません。 例 #include <iostream> using namespace std; int main() {  
-
C++での3つのルール
三つのルールは、C++を使用する際の経験則です。これは、クラスで次のいずれかが必要な場合に コピーコンストラクター 代入演算子 またはデストラクタ 明示的に定義されている場合は、3つすべてが必要になる可能性があります。 どうしてこれなの?これは、クラスが上記のいずれかを必要とする場合、動的に割り当てられたリソースを管理しており、それを正常に達成するには他のリソースが必要になる可能性があるためです。たとえば、代入演算子が必要な場合は、現在参照によってコピーされているオブジェクトのコピーを作成するため、リソースが割り当てられます。コピーにはコピーコンストラクタが必要であり、これらのリソース
-
コンストラクターはいつC++で呼び出されますか?
ここでは、コンストラクターが呼び出されたときを確認します。ここで、コンストラクターはさまざまなタイプです。グローバル、ローカル、静的ローカル、動的。 グローバルオブジェクトの場合、コンストラクタはmain関数に入る前に呼び出されます。 例 #include <iostream> using namespace std; class MyClass { public: MyClass() { cout << "Calling
-
C ++標準によるint、long型のサイズはどれくらいですか?
ここでは、C++でのint型とlong型のデータのサイズを確認します。サイズは、システムアーキテクチャとオペレーティングシステムによって異なります。 したがって、32ビットシステムでは、標準はILP32です。この標準では、int、long、およびポインター変数は32ビットです。 64ビットシステムの場合、2つのバリエーションがあります。 Linuxオペレーティングシステムの場合、標準はLP64です。ここで、longとpointerは64ビットですが、intは32ビットです。 Windowsオペレーティングシステムの場合、標準はLLP64です。ここで、long longは64ビットですが、i
-
POSIXを使用してC++内でコマンドを実行し、コマンドの出力を取得するにはどうすればよいですか?
ここでは、C++を介してPOSIXコマンドを使用する方法を説明します。プロセスは非常に単純で、system()という関数を使用する必要があります。この中に文字列を渡す必要があります。その文字列にはPOSIXコマンドが含まれます。 構文は次のようになります。 system(“command”) 例 #include <iostream> using namespace std; int main () { cout << "Print string using echo command" <&
-
gcc C ++プログラムがクラッシュしたときにスタックトレースを自動的に生成するにはどうすればよいですか?
Linuxの場合、gccを使用してC /C++コードをコンパイルできます。このコンパイラはglibcライブラリを使用します。 backtrace()関数を使用してエラーをトレースできます。この関数は、execinfo.hヘッダーファイル内にあります。この例では、スタックトレース機能を使用してセグメンテーション違反エラーを表示します。 例 #include <iostream> #include <execinfo.h> #include <signal.h> #include <cstdlib> #include <unistd.h>
-
C ++でランダムフロートを生成するにはどうすればよいですか?
CまたはC++では、ランダムフロートを直接作成することはできません。いくつかのトリックを使用してランダムなフロートを作成できます。 2つのランダムな整数値を作成し、それらを除算してランダムな浮動小数点値を取得します。 整数の商が生成される場合があるため、その可能性を減らすために、結果に0.5などの浮動小数点定数を掛けています。 例 #include <iostream> #include <cstdlib> #include <ctime> using namespace std; main() { srand((unsigned
-
static_cast <>とCスタイルのキャストの違いは何ですか?
ここでは、static_cast<>と通常のCスタイルのキャストの違いを確認します。 (int)xのような通常のキャストは、static_cast (x)がC++で使用されるCスタイルの型キャストです。 このstatic_cast<>()はコンパイル時チェック機能を提供しますが、Cスタイルのキャストはそれをサポートしていません。このstatic_cast<>()は、C++コード内のどこにでも見つけることができます。そして、このC ++キャストを使用すると、意図がはるかによく伝わります。 Cのようなキャストでは、他の型データを指すように型ポインターをキャストできる場合があります。 1つの
-
C ++でプログラムをxミリ秒スリープさせる方法は?
ここでは、C ++プログラムでx(ユーザーが指定)ミリ秒スリープする方法を説明します。 これを行うために、さまざまなライブラリを使用できます。ただし、ここではclock()関数を使用しています。 clock()は現在のCPU時間を返します。ここでは、時計から終了時刻と、指定されたx値を見つけようとします。次に、その時間の間、時間をとるために1つの空白のwhileループを実行します。ここでは、CLOCKS_PER_SECと呼ばれる1つのマクロが使用されます。これは、1秒あたりのクロックティック数を検出します。 コンセプトについてより良いアイデアを得るためにコードを見てみましょう。 例 #in
-
C ++でUnicode文字を印刷する方法は?
Unicode文字を印刷するためのプロセスは、C++での実際の印刷プロセスと非常によく似ています。 Unicode値に接頭辞\uを付けることができます。したがって、Unicode文字を正常に印刷できます。 注: コンソールがUnicodeをサポートしていない場合、正しい結果を得ることができません。ここでは、Linuxシステムを使用してこの問題を解決しました。 例 #include <iostream> using namespace std; int main() { cout << "Character: \u092E\n&qu
-
C ++を使用して実行時にメモリ使用量を取得するにはどうすればよいですか?
実行時に仮想メモリ使用量や常駐セットサイズなどのメモリ使用量を取得できます。それらを取得するために、いくつかのシステムライブラリを使用できます。このプロセスは、オペレーティングシステムによって異なります。この例では、Linuxオペレーティングシステムを使用しています。 そこで、ここでは、C++を使用してLinux環境でメモリ使用量の統計を取得する方法を説明します。 「/proc/ self/stat」フォルダからすべての詳細を取得できます。ここでは、仮想メモリのステータスと常駐セットのサイズを取得しています。 例 #include <unistd.h> #include <
-
C ++で多数を処理しますか?
C ++では、Boostライブラリを使用して多数を使用できます。このC++Boostライブラリは、広く使用されているライブラリです。これは、さまざまなセクションで使用されます。それはアプリケーションの大きなドメインを持っています。たとえば、ブーストを使用すると、2 64のような多数を使用できます。 C++で。 ここでは、Boostライブラリの例をいくつか示します。大きな整数のデータ型を使用できます。 int128_t、int256_t、int1024_tなどのさまざまなデータ型を使用できます。これを使用すると、最大1024の精度を簡単に取得できます。 最初は、ブーストライブラリを使用して
-
LinuxでC++を使用してミリ秒単位で時間を取得するにはどうすればよいですか?
ここでは、時間(プログラムの経過時間またはその他の種類の時間)を取得する方法を説明します。 ここでは、C++用のLinuxライブラリを使用しています。 timevalと呼ばれる構造があります。このtimevalは、時間をミリ秒単位で格納します。開始と終了の2つの時間を作成し、それらとの違いを見つけることができます。 例 #include <sys/time.h> #include <iostream> #include <unistd.h> using namespace std; main() { struct timeval
-
newを使用してC++オブジェクトをインスタンス化する場合と、newを使用せずにインスタンス化する場合の違いは何ですか?
C ++では、newキーワードを使用して、または使用せずにクラスオブジェクトをインスタンス化できます。 newキーワードを使用しない場合は、通常のオブジェクトと同じです。これはスタックセクションに保存されます。これは、スコープが終了すると破棄されます。ただし、アイテムにスペースを動的に割り当てたい場合は、そのクラスのポインターを作成し、new演算子を使用してインスタンス化できます。 C ++では、新しいメモリを動的に割り当てるために使用されます。 例 #include <iostream> using namespace std; class Point { &nb
-
Linux端末に色付きのテキストを出力する方法は?
ここでは、いくつかの行をLinuxターミナルに色を付けて印刷する方法を説明します。ここでは、C++コードに特別なことをしています。これを行うために、いくつかのLinuxターミナルコマンドを使用しています。この種の出力のコマンドは次のようになります。 \033[1;31m Sample Text \033[0m テキストのスタイルと色にはいくつかのコードがあります。これらは以下のとおりです。 色 フォアグラウンドコード バックグラウンドコード 黒 30 40 赤 31 41 緑 32 42 黄色 33 43 青 34
-
コンパイラが使用するC++標準のバージョンを確認するにはどうすればよいですか?
時々、それを知る必要があります。現在のC++標準は何ですか。この種の情報を取得するには、__cplusplusというマクロを使用できます。さまざまな標準の場合、これの値は次のようになります。 標準 __cplusplus出力 C ++ pre C ++ 98 1 C ++ 98 199711L C ++ 98 + TR1 これはチェックできません。これはC++98としてマークされます C ++ 11 201103L C ++ 14 201402L C ++ 17 201703L
-
C ++を使用してコンソールをクリアするにはどうすればよいですか?
C++コードを使用してコンソールをクリアできます。これを行うには、いくつかのシステムコマンドを実行する必要があります。 Linuxシステムでは、POSIXが使用されます。 system()関数を呼び出して、システムコマンドを実行できます。 Linuxでコンソールをクリアするには、「clear」コマンドを使用できます。これはsystem()関数内で渡されます。 より良いアイデアを得るためにコードを見てみましょう。 例 #include <iostream> using namespace std; int main () { cout << &