假設我想要一個私人指針指向我班的地圖。如果我的構造函數(一個布爾值)的參數爲true,我希望它指向NULL。這是否是正確的做法? (如果我的布爾是假的,我在地圖上添加第一個元素)C++正確初始化和處理指向地圖的指針
using namespace std;
#include <map>
class Class {
public:
Class(bool a)
: _myMap(0) {
if (a) {
_myMap = new map<int, bool>(); // initialized to NULL
} else {
(*_myMap)[0] = true; // added a first key-value to map
}
}
~Class() {
delete _myMap;
}
private:
map<int, bool>* _myMap;
}
編輯 這是我如何固定我的問題:
using namespace std;
#include <map>
class Class {
public:
Class(bool a)
: _myMap(0) { // map initialized to NULL
if (a) {
_myMap = new map<int, bool>();
}
}
~Class() {
delete _myMap;
}
void addValue(bool b, int i) {
if (_myMap != 0) {
(*_myMap)[i] = b;
}
}
private:
map<int, bool>* _myMap;
}
要回答這個問題問我爲什麼,我需要一個人指向地圖而不是簡單地圖的指針:當我使用我的組件類時,如果(在構造函數中使用)爲false,即我的地圖指向NULL,則不想添加值。
第一件事第一件事。爲什麼指針?爲什麼動態分配? –
我想要一個指針,因爲我希望能夠檢查我的地圖是否指向NULL。我不確定我的地圖指針的正確初始化方式。 – klaus
那麼,你的意思是什麼「NULL」?爲什麼你要「指向NULL」? –