#ifndef DATACENTER_H_
#define DATACENTER_H_
#include <map>
#include <list>
#include <string>
#include "LiLo/SoundInfo.h"
#include "MutexCondition.h"
#include "UserInfo.h"
using namespace std;
class DataCenter : MutexCondition{
private:
map<long long, list<SoundInfo *> > m_soundListMap;
void add(long long deviceId, SoundInfo* soundInfo);
public:
DataCenter();
virtual ~DataCenter();
static void addSoundInfo(long long deviceId, SoundInfo *soundInfo);
};
#endif /* DATACENTER_H_ */
DataCenter.cpp文件如何从静态函数调用本地函数?
#include "DataCenter.h"
DataCenter::DataCenter() {
// TODO Auto-generated constructor stub
}
DataCenter::~DataCenter() {
// TODO Auto-generated destructor stub
}
void DataCenter::addSoundInfo(long long deviceId, SoundInfo *soundInfo){
add(deviceId, soundInfo);
}
void DataCenter::add(long long deviceId, SoundInfo *soundInfo){
list<SoundInfo*>& info_list = m_soundListMap[55];
}
我试图从其他类访问函数调用addSoundInfo所以我已经将这个作为静态的。由于m_soundListMap不是静态的,所以我想我需要另一个函数来访问本地数据结构。
在静态函数内部,我调用add函数将SoundInfo添加到列表中。但是,我收到了静态函数中的错误,它显示“无法调用成员函数....没有对象”。
我该如何解决这个问题?提前致谢..
C++没有本地函数(尽管有解决方法,您的代码似乎没有任何可以描述为本地函数的东西)。 –
@Ben:但是C++ 0x幸运的! :) – Xeo
@Xeo:不,它不。但是解决方法稍微好一些。 @Space:如果你的意思是一个函数内的类内的函数,这就是我的解决方法。而且这里没有完成。 –