日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次

發(fā)布時(shí)間:2025/3/21 c/c++ 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.

  • 類 exception 、 bad_cast 和 bad_alloc 定 義 了 默 認(rèn) 構(gòu) 造 函 數(shù)
  • runtime_error 和 logic_error沒(méi)有默認(rèn)構(gòu)造函數(shù), 但是有一個(gè)可以接受 C 風(fēng)格字符串或者標(biāo)準(zhǔn)庫(kù) string類型實(shí)參的構(gòu)造函數(shù)

1.1 exception 定義的函數(shù)

  • 拷貝構(gòu)造函數(shù)
  • 拷貝賦值運(yùn)算符
  • 一個(gè)虛析構(gòu)函數(shù)
  • 一個(gè)名為 what 的虛成員。
    what 函數(shù)返回一個(gè) const char*,該指針指向一個(gè)以null結(jié)尾的字符數(shù)組, 并且確保不會(huì)拋出任何異常

eg.

class out_of_stock:public std::runtime_error { public:explicit out_of_stock(const std::string &s):std::runtime_error(s){} }; class isbn_mismatch:public std::logic_error { public:explicit isbn_mismatch(const std::string &s):std::logic_error(s){}isbn_mismatch(const std::string &s,const std::string &rhs,const std::string &lhs): std::logic_error(s),left(lhs),right(rhs){}const std::string left,right; }

1.2 使用我們自己的異常類型

Sales_data& Sales_data::operator+(const Sales_data& rhs) {if(isbn()!=rhs.isbn())throw isbn_mismatch("Wrong isbns",isbn(),rhs.isbn());units_sold+=rhs.units_sold;revenue+=rhs.revenue;return *this; }Sales_data item1,item2,sum; while(cin>>item1>>item2) {try{sum=item1+item2;}catch(const isbn_mismatch &e){cerr<<e.what()<<":left isbn("<<e.left<<")right isbn("<<e.right<<")"<<endl;} }

總結(jié)

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。