#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:如果你的意思是一個函數內的類內的函數,這就是我的解決方法。而且這裏沒有完成。 –