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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer Plus(十一)—— 使用类

發布時間:2025/3/21 c/c++ 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer Plus(十一)—— 使用类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

  • 不要返回指向局部變量或臨時對象的引用,函數執行完畢后,局部變量和臨時對象都將消失,引用將指向不存在的數據。

  • C++對用戶定義的運算符重載的限制:

  • 重載的運算符不必是成員函數,但必須至少有一個操作數是用戶定義的類型。

  • 使用運算符時不能違反運算符原來的句法規則,不能修改運算符的優先級。

  • 不能創建新的運算符。

  • 不能重載以下的運算符:【sizeof,.,.*,::,?:,typeid,const_casr,dynamic_cast,reinterpret_cast,static_cast】

  • 以下的運算符只能通過成員函數進行重載:【=,( ),[ ],->】

  • 如果要為類重載運算符,并將非類的第一項作為其第一個操作數,則可以用友元函數來反轉操作數順序。

  • 只有類聲明可以決定哪一個函數是友元,因此類聲明仍然控制了哪些函數可以訪問私有數據;通過使用友元函數和類方法,可以用同一個用戶接口表達這兩種操作,類方法和友元只是表達類接口的兩種不同機制。

  • 友元要將關鍵在friend放在原型聲明前,但不要在定義中使用關鍵字friend。

  • 雖然友元函數是在類聲明中聲明的,但它不是成員函數,一次不能用成員運算符來調用。

    雖然友元函數不是成員函數,但它與成員函數的訪問權限相同。

  • 假設有構造函數Stone(double),如果在類構造函數聲明中使用了關鍵字explicit,則該構造函數只能用于顯式強制轉換,否則還可以用于下面的隱式轉換:

  • 將對象初始為double值時

  • 將double值賦給Stone對象時

  • 將double值傳遞給接受Stone參數的函數時

  • 返回值被聲明為Stone的函數試圖返回double值時

  • 在上述任意一種情況下,使用可轉換為double類型的內置類型時

  • 被稱為轉換函數的特殊類成員運算符函數,用于將類對象轉換為其他類型,它沒有返回類型、沒有參數,名為operator typeName( ),其中typeName是對象將被轉換成的類型,將類對象賦值給typeName變量或將其強制轉換為typeName類型時,該轉換函數將自動調用。

  • 提供執行自動、隱式轉換的函數所存在的問題是:在用戶不希望進行轉換的時候,轉換函數也有可能進行轉換。應謹慎的使用隱式轉換函數,最好選擇僅在顯式的調用時才會被執行的函數。在C++98中,關鍵字explicit不能用于轉換函數,但C++11消除了這種限制。

  • 轉載于:https://my.oschina.net/shou1156226/blog/608162

    總結

    以上是生活随笔為你收集整理的C++ Primer Plus(十一)—— 使用类的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。