我在C++初學者,並得到了困惑在頭聲明爲const指針的初始化。舉個例子,我有我的頭就像一個結構和類:初始化一個const指針結構的C++
/* header file.h */
typedef struct A{ ... } A;
class myClass{
protected:
A *const myPtrA;
}
,並想以實例myPtrA的內容,例如在一個構造函數,知道是由一個相當複雜的結構子結構,需要動態實例化:
/* source file.cpp */
#include file.h
myClass::myClass() {
A *tmpA = new A;
*myPtrA = *tmpA;
}
這是初始化我的const指針myPtrA的好方法嗎?並且就每個新的呼叫需要專用的刪除呼叫而言,我可以在* myPtrA = * a之後立即刪除我的指針tmpA;沒有丟失myPtrA指向的內容的風險?
預先感謝您爲您的時間(和原諒我的英語;))
qroh
[找到一個很好的入門書(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)和閱讀有關*構造函數初始化列表*。 –
順便說一下,在C++中,'struct'就像一個類,唯一的區別就是默認的可見性(''public'''struct','''''''''private')。這意味着你不需要'typedef'作爲'struct'。 –
'typedef struct A {...} A;''是定義結構的C方式。在C++中,您可以像定義類一樣定義它:''struct A {...};''。 C++中結構和類之間的唯一區別是默認的可見性。 – nefas