我目前有两个课程,我想彼此沟通。我有一个名为stack的类,它可能有几个实例,所以我想告诉我的其他类,Map,有多少个堆栈实例。我已经将Map类的内存地址传递给堆栈,并且在其构造函数中我想要使用名为AddSize()的内存地址'方法,该方法将int变量递增1,以便Map类知道期望的Sizes数量,(I我计划建立一个阵列。)
我遇到的问题是在运行时违反异常的异常访问读取。
我想我会展示一些代码。感谢您抽出宝贵时间阅读我的问题。
检索给定的地图指针,因为它存储在Stack的数据库中,并使用指针尝试使用其方法。 (Head与不同的节点阵列相关联。
Stack<DT>::Stack(DT * MapPointer)
{
head = NULL;
Map<DT> * Pointer = MapAddress;
Pointer->AddSize();
cout << "Stack Initalised. Size Is: " << sizeof(DT) << " Address Is: " << &head << endl;
}
下面是地图类,它是裸的,因为我只是开始研究它。我计划在STL中添加类似Map类型的功能。
template<typename DT>
class Map{
private:
Node<DT> * head; //Top
public:
int size;
Map(){
cout << "Map Initalised" << endl;
}
void Insert(DT*);
void Add(DT*);
void AddSize();
};
template<typename DT>
void Map<DT>::Insert(DT * address){
}
template<typename DT>
void Map<DT>::Add(DT * address){
}
template<typename DT>
void Map<DT>::AddSize(){
size++;
cout << size << endl;
}
仅在提到大小时才会出现运行时错误,如果我显示我写过的文本,则不会引发运行时错误。它与封装有关吗?我试图使用友元功能但无济于事。