C++でのキャッチブロックと型変換
このセクションでは、C++での例外処理と型変換にcatchブロックを使用する方法を説明します。
最初に、コードを見てみましょう。出力がどうなるか、そしてそれらがどのように生成されるかを見ていきます。
例
#include <iostream> using namespace std; int main() { try{ throw 'a'; } catch(int a) { cout << "Integer value is caught :" << a; } catch(...) { cout << "Entering into default catch block"; } }
出力
Entering into default catch block
それで、これの背後にある理由は何ですか。なぜこの種の出力が生成されているのですか?ご覧のとおり、文字「a」がスローされますが、最初のキャッチブロックはint用です。 「a」のASCIIが整数であると考えると、最初のブロックに入りますが、そのような変換はcatchブロックには適用されません。
別の例を見てみましょう。この例では、スローされたオブジェクトに対して変換コンストラクターが呼び出されていないことがわかります。
例
#include <iostream> using namespace std; class TestExcept1 {}; class TestExcept2 { public: TestExcept2 (const TestExcept1 &e ){ // Defining the Conversion constructor cout << "From the Conversion constructor"; } }; main() { try{ TestExcept1 exp1; throw exp1; } catch(TestExcept2 e2) { cout << "Caught TestExcept2 " << endl; } catch(...) { cout << "Entering into default catch block " << endl; } }
出力
Entering into default catch block
派生型オブジェクトがスローされている間、派生型オブジェクトは基本型オブジェクトに変換されません。
-
フリップフロップの種類とC++での変換
フリップフロップはシーケンシャルデジタル回路です。フリップフロップにはいくつかの種類があります。ここでは、フリップフロップのタイプと、あるフリップフロップから別のフリップフロップへの変換ルールを確認します。 フリップフロップには基本的に4つのタイプがあります- SRフリップフロップ Dフリップフロップ JKフリップフロップ Tフリップフロップ SRフリップフロップ SRフリップフロップは、正のクロック遷移または負のクロック遷移のみで動作します。一方、SRラッチはイネーブル信号で動作します。 SRフリップフロップの回路図を次の図に示します。 この回路には、2つの入力SとR、および
-
Pythonデータ型と型変換
Pythonデータ型と型変換の実行方法の概要。 Pythonデータ型 Pythonで変数を作成または宣言する場合、変数はさまざまなデータ型を保持できます。 Pythonには、次の組み込みデータ型があります。 str int、float、complex リスト、タプル dict セット ブール byte、bytearray テキストタイプ:str str データ型は、文字列を宣言するときに使用されます 変数。 例: x = some string y = str(another string) 数値型:int、float、complex 数値変数を作成する