C における暗黙的な型変換とは、コンパイラによる「コンストラクター パラメーターの型」から「クラス型」への自動変換を指します。暗黙的なクラス型変換にはリスクが伴います。暗黙的な変換の結果、クラスの一時変数が生成され、操作が完了すると消滅します。テスト完了後に破棄されるオブジェクトを構築しました。
#C の暗黙的なクラス型変換
「C 入門」で言及:
#「単一パラメータで呼び出すことができるコンストラクタは、パラメータ型からクラス型への暗黙的な変換を定義します。」これは次のようになります。ここで、「単一の仮パラメータで呼び出すことができる」とは、コンストラクタが 1 つの仮パラメータのみを持つことができるという意味ではなく、複数の仮パラメータを持つことができるが、それらの仮パラメータにはデフォルトの実パラメータがあることを意味することに注意してください。 それでは、「暗黙的な変換」とは何でしょうか?上の文にもあるように、
はコンパイラーによるコンストラクターのパラメーター型からクラス型への自動変換です。
コードを見てみましょう:#include "stdafx.h" #include#include using namespace std ; class BOOK //定义了一个书类 { private: string _bookISBN ; //书的ISBN号 float _price ; //书的价格 public: //定义了一个成员函数,这个函数即是那个“期待一个实参为类类型的函数” //这个函数用于比较两本书的ISBN号是否相同 bool isSameISBN(const BOOK & other ){ return other._bookISBN==_bookISBN; } //类的构造函数,即那个“能够用一个参数进行调用的构造函数”(虽然它有两个形参,但其中一个有默认实参,只用一个参数也能进行调用) BOOK(string ISBN,float price=0.0f):_bookISBN(ISBN),_price(price){} }; int main() { BOOK A("A-A-A"); BOOK B("B-B-B"); cout< BOOK类型,借助BOOK的构造函数进行转换,以满足isSameISBN函数的参数期待。 cout< ログイン後にコピー
explicit BOOK(string ISBN,float price=0.0f):_bookISBN(ISBN),_price(price){}
要約すると:
C チュートリアル」
以上がC++ の暗黙的な型変換とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。