假设我想要一个私人指针指向我班的地图。如果我的构造函数(一个布尔值)的参数为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”? –