C++ ?? ??? ?? ??? ??: ?? ??? ??? ??? ?? ?? ???
Apr 30, 2024 am 09:15 AMFriend ??? ??? ??? friend ??? ???? ???? ??? ??? ???? ? ????. ??? ???? ???? ??? ??? ???? ??? ?? ???? ?? ??? ?? ? ????. ?? ???? ?? ?? ??? printData()? ?? ??? MyClass ????? ?? ?? ???? ???? ??? ????? ???? ????? ???? ???? ? ????. ??? ?? ??? ???? ???? ??, ??? ??? ?????? ????, ??? ????? ???? ???? ???.
C++ Friend ?? ?? ??: Friend ??? ??? ??? ?? ?? ??
???
C++?? friend ??? ???? private ? protected ??? ???? ? ?? ?? ?????. ? ???? ??? ????? ????? ??? ?? ?? ??? ????? ???? ??? ?? ?? ?? ??? ?????.
Friend ??? ??
Friend ??? ??? ???? friend
???? ???? ?????. ?? ?? ??? ???? ?? ??? ?? ??? ???? ??? ? ?? ??? ???? ? ????. friend
關(guān)鍵字來聲明的。它允許該函數(shù)訪問類的私有和保護(hù)成員,而不需要成為該類的成員函數(shù)。
class MyClass { private: int data; public: friend void printData(const MyClass& obj); // 友元函數(shù) };
友元函數(shù)與類模板
類模板允許您創(chuàng)建可以操作不同類型數(shù)據(jù)的通用類。友元函數(shù)也可以被模板化,這意味著您可以創(chuàng)建通用的友元函數(shù),適用于所有特定類型的實例。
template <typename T> class MyClass { private: T data; public: friend void printData(const MyClass<T>& obj); // 友元函數(shù)模板 };
實戰(zhàn)案例
用例:打印數(shù)據(jù)
編寫一個友元函數(shù)模板 printData()
,可以打印任何類型 MyClass
實例的私有成員 data
template <typename T> void printData(const MyClass<T>& obj) { std::cout << "Data: " << obj.data << std::endl; }
Friend ?? ? ??? ???
??? ???? ???? ??? ??? ???? ??? ? ?? ?? ???? ?? ? ????. Friend ??? ????? ?? ????. ?, ?? ??? ?? ????? ?? ???? ?? Friend ??? ?? ? ????.int main() { MyClass<int> obj1; obj1.data = 10; printData(obj1); // 調(diào)用友元函數(shù)打印數(shù)據(jù) return 0; }?? ??
?? ??: ??? ??
??MyClass</code ??? ??? ??? ??? ? ?? ?? ?? ??? <code>printData()
? ?????. > ???? ???
. Data: 10
rrreee??
- Friend ??? ??? ???? ???? ???? ??? ?? ??? ????.
- ???? ??: ??? ??? ?? ?? ???? ??? Setter ???? ?? /Setter ???.
- ??? ??: ?? ?? ?? ??? ??? ???? ????.
? ??? C++ ?? ??? ?? ??? ??: ?? ??? ??? ??? ?? ?? ???? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??? ?? ?? ???? ?? ????? ???? ?? ??? ? ?? ? ?????. ?? ?? ???? ????? ???? ??, ???? ? ??? ??? ?? ?????. ??? ??? ????? ???? ??? ??? ?? ??? ???? ???? ?? ? ?? ??? ??? ? ????. ???? ??? ??? ??? ?? ???? ? ??? ??? ???? ???? ?? ? ?????.

PHP? AI ??? ?? ??? ??? ?? AI ??? API (? : OpenAI, HuggingFace)? ?????? ???? ??? ???, API ??, ?? ?? ? ?? ?????? ???? ????. 2. ??? ??? ??? ??? AI ???? ???? ????. ?? ??? API, ??? ?? ? ??? ??? ???? ????. 3. ?? ??? ?? ??, ??, ??, ???, ??? ????? ? GPT ?? BART/T5? ?? ?? ??? ???????. 4. ?? ????? ??, ??? ?, ?? ?? ? ?? ?? ??? ?????. ?? ??? ???? ????? ???? ??? ???? ?? ?? ?? ? ??, ???? ?? ??, ?? ??, ?? ?? ? ??? ???????.

std :: ??? ? ?? ??? ?? 4 ?? ???? ??? ????. 1. ?? () ???? ???? ??? ?? ?? ??? ??? ??? ?? ?? ???? ?? ????. 2. ?? [0]? ???? Front ()? ??? ? ??? ??? ?? ?? ??? ????????. 3. ?? ????? ? STL ????? ??? *?? () ??; 4. ???? ????? ?? ??? ?? ?? (0)? ???? ??? ?? ? ??? ?????. ?? ??? ?? ?? ??? ?????. ?? ??? ?? ? ()? ???? ?? ??? ??? ?? Front () ???? ???? ???? ?? ??? ??? ?? ? ?? ??? ?? ????.

?? ?? ??? ?? ??? ????? ??? ? ????. 1. I-th ??? 1?? ?????? : N & (1 ??

C ?? ?????? ???? ??? ???? ???? ?? ??? ???? ? ??? ?????. 1. STL ????? ?? ??? ??? ??, ??? ?? ? ??? ??? ??? ?? ??? ?? ??????, UNOrdered_map? ?? ??? ?????. 2. ??, ?? ? ??? ?? ?? ????? ????? ???? ????? ??? ?? ? ????. 3. ??? ??? ??? _ptr ? shared_ptr? ??? ??? ?? ???? ????? ?????. 4. ??, ?? ? ??? ?? ?? ??? ?? ?? ? ???? ??????. ??? ?? ??? ????? ?? ???? ?? ??? ?? ??? ? ? ????.

??? ?? ??? ? ???? ???? ? ???? C? ??? ???? ?? ?????. 1. ??? Intadd (Inta, Intb)? ?? ?? ? ??? ?? ?????. 2. ??? ?? ? ? ?? ??? ???? ??? ?? ? ? ?? ??? ??? ?????. 3. ?? ???? ??? ??? ??? ???? ?? voidGreet (StringName)? ?? ?? ???? void? ?????. 4. ??? ???? ?? ???? ?????, ??? ???, ?? ??? ???? ? ? ???, ?? C ?????? ?? ?????.

C ABI? ????? ?? ??? ?? ? ? ??? ?? ????, ?? ??, ?? ????, ?? ?? ?? ?? ????? ?????. 1. ??? ??? ??? ???? ?? ??? ? ??? ?????. 2. ?? ???? ?? ??? ?? ????? ??, STL ??, ??? ??, ???? ??? ?? ? ??? ABI? ?? ? ? ????. ?? ? ?? ????? ABI ???? ?????? ???????.

STD :: IS_SAME? ??? ???? ? ??? ??? ??? ? ??? ???? ?? ?? ???? ? ?????. 1. ?? ???? std :: is_same :: ?? t? u? ??? ?? ? ? ?? true???. ??? ??? ?????. const, reference, pointer ?? ?? ?? ???? ??? ????. 2. std :: remove_const, std :: remove_reference ? ?? ???? ?? ??? ??? ?? ?????? ??? ?? ??? ?? ? ? ????. 3. IFConstexpr? ??? ??? ??? ?? ?? ?? ???? ??? ?? ?? ??? ?? ???? ?? ??? ?? ?? ??? ?????. 4.
