類私有成員變數突破類的限制被外部呼叫

2021-07-30 11:39:29 字數 641 閱讀 8255

主要思想:通過公有成員函式將私有成員變數位址傳出去,在外部取得該位址,然後通過外部指標修改此位址的值,則此私有成員變數的值也改變了,突破了物件及類成員函式呼叫私有成員變數的限制,同理,成員函式的位址如果被外部獲取(例如使用模板時),則可以突破物件,呼叫此成員函式。

以下**用qt編寫,其他平台類似。

#ifndef mainwindow_h

#define mainwindow_h

#include

#include

namespace ui

class mainwindow : public qmainwindow

;#endif

#include "mainwindow.h"

#include "ui_mainwindow.h"

mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)

int *mainwindow::ptest()

void mainwindow::display()

輸出:5 5 20 20

私有成員變數的訪問(類內與類外)

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 通過公共函式為私有成員賦值 class test void sety int b void printxy void int main 2 利用指標訪問私有資料成員 class test void sety int b void getxy int px,int py int main 3 利用...

python 類私有成員

在python中定義私有變數只需要在變數名或函式名前加上 兩個下劃線,那麼這個函式或變數就會為私有的了。created on 2012 7 24 author administrator class test def test 1 self print test 1 is ok.def test 2...