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類 非靜...