牛客网C++面经 类和数据抽象
生活随笔
收集整理的這篇文章主要介紹了
牛客网C++面经 类和数据抽象
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
請你來說一下C++中struct和class的區(qū)別
- 在C++中,可以用struct和class定義類,都可以繼承。區(qū)別在于:structural的默認繼承權限和默認訪問權限是public,而class的默認繼承權限和默認訪問權限是private。
- 另外,class還可以定義模板類形參,比如template <class T, int i>。
請你回答一下C++類內(nèi)可以定義引用數(shù)據(jù)成員嗎?
- 可以,必須通過成員函數(shù)初始化列表初始化。
請你回答一下什么是右值引用,跟左值又有什么區(qū)別?
- 右值引用是C++11中引入的新特性 , 它實現(xiàn)了轉(zhuǎn)移語義和精確傳遞。
目的
- 1. 消除兩個對象交互時不必要的對象拷貝,節(jié)省運算存儲資源,提高效率。
- 2. 能夠更簡潔明確地定義泛型函數(shù)。
左值和右值的概念:
- 左值:能對表達式取地址、或具名對象/變量。一般指表達式結束后依然存在的持久對象。
- 右值:不能對表達式取地址,或匿名對象。一般指表達式結束就不再存在的臨時對象。
右值引用和左值引用的區(qū)別:
- 1. 左值可以尋址,而右值不可以。
- 2. 左值可以被賦值,右值不可以被賦值,可以用來給左值賦值。
- 3. 左值可變,右值不可變(僅對基礎類型適用,用戶自定義類型右值引用可以通過成員函數(shù)改變)
參考鏈接
-
C++:泛型(模板)函數(shù)
總結
以上是生活随笔為你收集整理的牛客网C++面经 类和数据抽象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。