- 论坛徽章:
- 0
|
main函数里实例SettingValue <int> sv;时提示
undefined reference to `Envpro::ServerConfig::SettingValue <int>::SettingValue()'
调用sv.setValue( 98 );时提示
undefined reference to `Envpro::ServerConfig::SettingValue <int>::setValue(int)'
各位帮看下什么原因。
代码如下:
/***SettingValue.h***/
#ifndef SETTINGVALUE_H_
#define SETTINGVALUE_H_
namespace Envpro{ namespace ServerConfig{
template <class T> class SettingValue
{
public:
T getValue();
void setValue(T val);
bool isChanged();
SettingValue();
SettingValue(T val);
virtual ~SettingValue();
private:
T m_value;
bool m_bChanged;
};
}}
#endif /*SETTINGVALUE_H_*/
/***SettingValue.cpp***/
#include "SettingValue.h"
using Envpro::ServerConfig::SettingValue;
template <class T> SettingValue <T>::SettingValue()
: m_bChanged(false)
{
}
template <class T> SettingValue <T>::SettingValue(T val)
: m_bChanged(false), m_value(val)
{
}
template <class T> SettingValue <T>::~SettingValue()
{
}
template <class T> T SettingValue <T>::getValue()
{
return m_value;
}
template <class T> void SettingValue <T>::setValue(T val)
{
m_value = val;
m_bChanged = true;
}
template <class T> bool SettingValue <T>::isChanged()
{
return m_bChanged;
}
/***mainapp.cpp***/
#include "SettingValue.h"
#include <stdio.h>
using Envpro::ServerConfig::SettingValue;
int main()
{
SettingValue <int> sv;
sv.setValue( 98 );
printf("SettingValue:%d", sv.getValue());
return 0;
}
[ 本帖最后由 speeder 于 2009-3-12 13:10 编辑 ] |
|