我对模板类完全陌生。
我已经创建了一个,但是无法访问方法中的公共类变量。
程序崩溃。
在调试模式下观看:没有名为q的成员。 ->崩溃
类:
#ifndef SIMULATOR_H
#define SIMULATOR_H
#include<queue>
#include<Event.h>
#include <functional>
#include <vector>
#include <iostream>
using namespace std;
template<class T>
class Simulator
{
public:
std::priority_queue<Event<T>*> q;
int i;
Simulator()
{
}
virtual ~Simulator()
{
//dtor
}
void addEvent(Event<T> *e)
{
i = 5; //Watch in debug mode: There is no member named i. --> CRASH
this->q.push(e); //Watch in debug mode: There is no member named q. --> CRASH
}
};
#endif // SIMULATOR_H
main.cpp
Simulator<int> *simulator;
simulator->addEvent(event);
最佳答案
Simulator<int> *simulator = new Simulator<int>;
simulator->addEvent(event);
您创建了一个未初始化的指针,因此程序崩溃,因为该指针未指向有效的对象。
最好避免使用指针,因为在这种情况下(没有看到您的代码),我看不出有任何理由使用它。
关于c++ - c++模板类-方法中的类变量不可用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35898147/