c++友元函式獲取成員變數(作為除錯後門程式)
一.原始碼例子:
[user:backdoor] ls
main.cpp
[user:backdoor] cat main.cpp
/// @file main.cpp
/// @brief
/// @author eastonwoo
/// 0.01
/// @date 2012-12-24
#include
#define debug_backdoor //後門巨集
typedef struct s_hello
s_hello;
class ctest
#ifdef debug_backdoor
friend bool getvalue(ctest &disk, int index, void** output, int &size); //友元函式
typedef enum e_value
e_value;
#endif
private:
int m_a;
s_hello m_s;
};#ifdef debug_backdoor
bool getvalue(ctest &disk, int index, void** output, int &size) //獲取私有成員變數
return true;
}#endif
int main()
[user:backdoor]
二.編譯執行:
[user:backdoor] g++ -g main.cpp
[user:backdoor] ls
a.out* main.cpp
[user:backdoor] ./a.out
*pa = 1, size = 4
*pa = 10, size = 12 //成功獲取.可作為後門除錯
[user:backdoor]
C 友元函式 友元類 友元成員函式
眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...