如何在使用类指针时防止访问违反读取

时间:2016-10-27 17:44:36

标签: c++ access-violation

我目前有两个课程,我想彼此沟通。我有一个名为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;
}

仅在提到大小时才会出现运行时错误,如果我显示我写过的文本,则不会引发运行时错误。它与封装有关吗?我试图使用友元功能但无济于事。

0 个答案:

没有答案