C 友原函式求教

2023-02-15 21:10:11 字數 1436 閱讀 1241

1樓:郭子淦老師

c++友元函式是可以直接訪問類的私有成員的非成員函式。它是定義在類外的普通函式,它不屬於任何類,但需要在類的定義中加以宣告,宣告時只需在友元的名稱前加上關鍵字friend。

類具有封裝和資訊隱藏的特性。只有類的成員函式才能訪問類的私有成員,程式中的其他函式是無法訪問私有成員的。非成員函式可以訪問類中的公有成員,但是如果將資料成員都定義為公有的,這又破壞了隱藏的特性。

另外,應該看到在某些情況下,特別是在對某些成員函式多次呼叫時,由於引數傳遞,型別檢查和安全性檢查等都需要時間開銷,而影響程式的執行效率。

為了解決上述問題,提出一種使用友元的方案。友元是一種定義在類外部的普通函式,但它需要在類體內進行說明,為了與該類的成員函式加以區別,在說明時前面加以關鍵字friend。友元不是成員函式,但是它可以訪問類中的私有成員。

友元的作用在於提高程式的執行效率(即減少了型別檢查和安全性檢查等都需要的時間開銷),但是,它破壞了類的封裝性和隱藏性,使得非成員函式可以訪問類的私有成員。

友元可以是一個函式,該函式被稱為友元函式;友元也可以是一個類,該類被稱為友元類。

友元函式的特點是能夠訪問類中的私有成員的非成員函式。友元函式從語法上看,它與普通函式一樣,即在定義上和呼叫上與普通函式一樣。

2樓:風兮美的

1.友元函式的簡單介紹。

為什麼要使用友元函式。

在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員(例如:智慧指標類的實現),那麼類a中該函式要是類b的友元函式。具體來說:為了。

使其他類的成員函式直接訪問該類的私有變數。即:允許外面的類或函式去訪問類的私有變數和保護變數,從而使兩個類共享同一函式。

實際上具體大概有下面兩種情況需要使用友元函式:(1)運算子過載的某些場合需要使用友元。(2)兩個類要共享資料的時候。

使用友元函式的優缺點。

優點:能夠提高效率,表達簡單、清晰。

缺點:友元函式破環了封裝機制,儘量不使用成員函式,除非不得已的情況下才使用友元函式。

2.友元函式的使用。

友元函式的引數:

因為友元函式沒有this指標,則引數要有三種情況:

要訪問非static成員時,需要物件做引數;

要訪問static成員或全域性變數時,則不需要物件做引數;

如果做引數的物件是全域性物件,則不需要物件做引數;

友元函式的位置。

因為友元函式是類外的函式,所以它的宣告可以放在類的私有段或公有段且沒有區別。

友元函式的呼叫。

可以直接呼叫友元函式,不需要通過物件或指標。

友元函式的分類:

普通函式友元函式。

目的:使普通函式能夠訪問類的友元。

語法:宣告:friend + 普通函式宣告。

實現位置:可以在類外或類中。

實現**:與普通函式相同。

呼叫:類似普通函式,直接呼叫。

c 新手求教函式問題

int str int x 函式str 引數 int 返回一個 int 型的 引用 引用就是某個目標變數的 別名 alias 對引用的操作與對變數直接操作效果完全相同 當返回一個變數時,會產生拷貝。當返回一個引用時,不會發生拷貝,你可以將引用看作是一個變數的別名,就是其他的名字,引用和被引用的變數其...

導函式與原函式的關係,需要詳細點的。原函式單調性,原函式零

原函式是對於一個定義在某區間的已知函式f x 如果存在可導函式f x 使得在該區間內的任一點都存在df x f x dx,則在該區間內就稱函式f x 為函式f x 的原函式。一般地,設函式y f x 在某個區間內有導數,如果在這個區間y 0,那麼函式y f x 在這個區間上為增函式 如果在這個區間y...

已知導數函式和原函式關係式怎麼解得原函式表示式已

都是典型的微分方程形式.1.典型的齊次方程,令y f x 那麼有y 3y 這種方程的特點是對稱,可通過恆等變形的形式,將x和y分離.我們有 dy dx 3y 於是dy 3y dx,兩邊同時積分 dy 3y dx 那麼x 1 3y,變形得 y f x 1 3x c 2.這是一個一階線性微分方程,且係數...