C 內部類和外部類的互相訪問(d指標和q指標)

2021-09-11 04:42:00 字數 1036 閱讀 1122

d指標和q指標式qt中常見的封裝方法,由此引出了c++內部類和外部類的互相訪問。

其實也是pimpl(pointer to implementation, 指向實現的指標)方法。

實驗**:

inner類為outter類的私有內部類。inner類中有乙個public字串變數in,outter類中有乙個private字串變數out。通過outter類中的d指標訪問inner類的setin()和getin(),實現對in的讀寫;通過outter類的d指標訪問inner類,再通過inner類中的q指標訪問outter類,實現對out的讀寫(實際上是多此一舉,僅用作說明通過q指標實現內部類對外部類的訪問)。由於d指標通過new建立,因此要及時delete並置0;而q指標只是將outter類的this傳入,因此不必delete。

#include

using namespace std;

class outter

void

set(string &str)

void

get()}

; inner *d;

public:

outter()

:d(new outter:

:inner

(this)

)//在初始值列表中初始化d指標(首選)

//outter() //在建構函式中給d指標賦值

~outter()

void

setin

(string &str)

void

getin()

void

setout

(string &str)

void

getout()

void

printout()

};intmain()

輸出為:

inout

out參考:

d指標/q指標在c++中的使用

c++內部類怎麼訪問外部類

c++ programming/idioms

內部類和外部類之間互相訪問

內部類與外部類之間的成員互相訪問 內部類可以訪問外部類的任何成員,包括private成員。外部類訪問內部類的成員需要建立內部類的物件,之後可以訪問內部類的任何成員,包括private成員,需要注意的是成員內部類不可以有靜態成員。當外部類的成員和內部類的成員重名時單單用this是區分不了的。在內部類中...

內部類和外部類方法間的互相呼叫

內部類呼叫外部類的方法 外部呼叫內部類的方法1.使用static可以宣告乙個內部類,可以直接在外部呼叫 定義外部類 public class outer 使用static定義內部類 static class inner public class test 2.不使用statc宣告乙個內部類 使外部呼...

內部類 和外部類之間的訪問關係

外部類和內部類的訪問 1成員內部類可以無條件訪問外部類的所有成員屬性和成員方法 包括private成員和靜態成員 2.外部類訪問內部類 首先,要有內部類的物件 但是內部類是依附於外部類存在的 所以,先要建立外部類的物件。方式如下 內部類之間的訪問 非靜態內部類呼叫非靜態內部類 直接呼叫new類 非靜...