C++中成員函數(shù)和友元函數(shù)的區(qū)別有哪些

c++
小億
239
2023-08-16 10:50:29

C++中成員函數(shù)和友元函數(shù)之間有以下幾點(diǎn)區(qū)別:

  1. 訪問(wèn)權(quán)限:成員函數(shù)可以直接訪問(wèn)類(lèi)的私有成員和保護(hù)成員,而友元函數(shù)可以在類(lèi)的外部訪問(wèn)類(lèi)的私有成員和保護(hù)成員。

  2. 調(diào)用方式:成員函數(shù)可以通過(guò)對(duì)象或指針調(diào)用,而友元函數(shù)可以直接調(diào)用,不需要通過(guò)對(duì)象或指針。

  3. 聲明方式:成員函數(shù)在類(lèi)中進(jìn)行聲明和定義,而友元函數(shù)在類(lèi)中進(jìn)行聲明,在類(lèi)外進(jìn)行定義。

  4. 可見(jiàn)性:成員函數(shù)在類(lèi)內(nèi)定義,可以被所有對(duì)象訪問(wèn),而友元函數(shù)在類(lèi)外定義,只有在友元函數(shù)被聲明的類(lèi)中能訪問(wèn)。

  5. 關(guān)系:成員函數(shù)是類(lèi)的成員,是類(lèi)的一部分,而友元函數(shù)不是類(lèi)的成員,只是與類(lèi)有一定關(guān)系的函數(shù)。

0