全域性函式類內實現:直接在類內宣告友元即可
全域性函式類外實現:需要讓編譯器提前知道全域性函式的存在
推薦使用全域性函式類內實現,編譯器可以直接識別
#include
#include
using
namespace std;
//宣告person類
template<
classt1,
class
t2>
class
person
;//全域性函式類外實現
//不用加作用域
//提前讓編譯器知道全域性函式
template<
classt1,
class
t2>
void
printperson2
(personp)
template<
classt1,
class
t2>
class
person
//全域性函式 類外實現
//加空模板引數列表 表明這是乙個函式模板而非普通函式
friend void printperson2<
>
(personp)
;public
:person
(t1 name,
t2 age)
private
:t1 m_name;
t2 m_age;};
void
test01()
void
test02()
intmain()
類內陣列宣告,「類外」指定大小
類內陣列宣告,類外 指定大小 using namespace std class age const int age ages int main 首先說明 1,c 可以在類的宣告的時候指定值 但是是有條件的 static const 修飾。保證是class級別的,並且不可修改。2,ages的宣告是在...
私有成員變數的訪問(類內與類外)
1 class ctest 1011 ctest ctest int i value i 1215 16 ctest ctest const ctest rhs value rhs.value 1720 21 ctest ctest operator const ctest rhs 2229 30v...
類內靜態函式和全域性靜態函式的相同點和不同點
1 全域性靜態函式只在本編譯單元有效。2 類靜態函式,對比普通成員函式,沒有this指標,不能訪問非static成員。3 要說二者相同點,都是c 名字控制的手段 全域性靜態函式被侷限在乙個編譯單元,通俗的將就是在乙個cpp檔案中定義的全域性靜態函式在另乙個cpp檔案中不能被呼叫。例程如下 inclu...