class XXX
{
...
public:
operator int(){}
operator char(){}
operator float(){}
}
在这里, operator前不能指明任何返回类型.
{
...
public:
operator int(){}
operator char(){}
operator float(){}
}
在这里, operator前不能指明任何返回类型.
解决方案 »
- 指针的问题·······················
- mysql c api ,总是出现cpu100%,急!!!
- 怎么让关于数据库的程序自动注册DSN
- 熟悉武汉天融信的朋友请进,想了解一下这个公司
- 怎样将WORD的打印预览视图画到自己的视图上?
- 我用ATL做了一个往HDC上画线的COM,用VB来调用,请问参数怎么传?
- 如何判断一对象指针是否合法?60分相送!!!!!!!!!!!!!!!!!!!!!!!!!!
- 请问如何将 LPDWORD 数据转换成 int 格式
- 怎么从一个HDC 得到一个CDC?
- VC++报错,unhandled exception in exe(KERNELBASE.DLL)0xE06D7363
- 对不起,我知道这个帖子不该发在这里,但还是恳请大家帮我一下!
- let's go 菜鸟继续请教空白窗口请错问题,解决问题者10分
我把operator前的返回类型去掉了,可结果是这样的:------------------Configuration: Chp1104 - Win32 Debug--------------------
Compiling...
AnyData.cpp
Linking...
Chp1104View.obj : error LNK2005: "public: __thiscall Storage::Storage(void)" (??0Storage@@QAE@XZ) already defined in AnyData.obj
Chp1104View.obj : error LNK2005: "public: virtual __thiscall Storage::~Storage(void)" (??1Storage@@UAE@XZ) already defined in AnyData.obj
Storage.obj : error LNK2005: "public: __thiscall Storage::Storage(void)" (??0Storage@@QAE@XZ) already defined in AnyData.obj
Storage.obj : error LNK2005: "public: virtual __thiscall Storage::~Storage(void)" (??1Storage@@UAE@XZ) already defined in AnyData.obj
StorageChar.obj : error LNK2005: "public: __thiscall Storage::Storage(void)" (??0Storage@@QAE@XZ) already defined in AnyData.obj
StorageChar.obj : error LNK2005: "public: virtual __thiscall Storage::~Storage(void)" (??1Storage@@UAE@XZ) already defined in AnyData.obj
StorageChar.obj : error LNK2005: "public: __thiscall StorageChar::StorageChar(void)" (??0StorageChar@@QAE@XZ) already defined in AnyData.obj
StorageChar.obj : error LNK2005: "public: virtual __thiscall StorageChar::~StorageChar(void)" (??1StorageChar@@UAE@XZ) already defined in AnyData.obj
StorageChar.obj : error LNK2005: "public: virtual void __thiscall StorageChar::Assign(char *)" (?Assign@StorageChar@@UAEXPAD@Z) already defined in AnyData.obj
StorageChar.obj : error LNK2005: "public: virtual void __thiscall StorageChar::CopyData(char *)" (?CopyData@StorageChar@@UAEXPAD@Z) already defined in AnyData.obj
StorageFloat.obj : error LNK2005: "public: __thiscall Storage::Storage(void)" (??0Storage@@QAE@XZ) already defined in AnyData.obj
StorageFloat.obj : error LNK2005: "public: virtual __thiscall Storage::~Storage(void)" (??1Storage@@UAE@XZ) already defined in AnyData.obj
StorageFloat.obj : error LNK2005: "public: __thiscall StorageFloat::StorageFloat(void)" (??0StorageFloat@@QAE@XZ) already defined in AnyData.obj
StorageFloat.obj : error LNK2005: "public: virtual __thiscall StorageFloat::~StorageFloat(void)" (??1StorageFloat@@UAE@XZ) already defined in AnyData.obj
StorageFloat.obj : error LNK2005: "public: virtual void __thiscall StorageFloat::Assign(char *)" (?Assign@StorageFloat@@UAEXPAD@Z) already defined in AnyData.obj
StorageFloat.obj : error LNK2005: "public: virtual void __thiscall StorageFloat::CopyData(char *)" (?CopyData@StorageFloat@@UAEXPAD@Z) already defined in AnyData.obj
StorageInt.obj : error LNK2005: "public: __thiscall Storage::Storage(void)" (??0Storage@@QAE@XZ) already defined in AnyData.obj
StorageInt.obj : error LNK2005: "public: virtual __thiscall Storage::~Storage(void)" (??1Storage@@UAE@XZ) already defined in AnyData.obj
StorageInt.obj : error LNK2005: "public: __thiscall StorageInt::StorageInt(void)" (??0StorageInt@@QAE@XZ) already defined in AnyData.obj
StorageInt.obj : error LNK2005: "public: virtual __thiscall StorageInt::~StorageInt(void)" (??1StorageInt@@UAE@XZ) already defined in AnyData.obj
StorageInt.obj : error LNK2005: "public: virtual void __thiscall StorageInt::Assign(char *)" (?Assign@StorageInt@@UAEXPAD@Z) already defined in AnyData.obj
StorageInt.obj : error LNK2005: "public: virtual void __thiscall StorageInt::CopyData(char *)" (?CopyData@StorageInt@@UAEXPAD@Z) already defined in AnyData.obj
Debug/Chp1104.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Creating browse info file...Chp1104.exe - 23 error(s), 0 warning(s)
可能是Char -> StorageChar 、int -> StorageInt、float -> StorageFloat
不能隐式转换.
//
//////////////////////////////////////////////////////////////////////#include "stdafx.h"
#include "Chp1104.h"
#include "AnyData.h"//#include "Storage.h"
#include "StorageInt.h"
#include "StorageChar.h"
#include "StorageFloat.h"#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////AnyData::AnyData()
{
m_pStor = NULL;
}AnyData::~AnyData()
{
delete m_pStor;
}
void AnyData::operator =(int iData)
{
delete m_pStor;
m_pStor=new StorageInt;
m_pStor->Assign((char*)&iData);
}
void AnyData::operator =(char chData)
{
delete m_pStor;
m_pStor=new StorageChar;
m_pStor->Assign((char*)&chData);
}
void AnyData::operator =(float fData)
{
delete m_pStor;
m_pStor = new StorageFloat;
m_pStor->Assign ((char*)&fData);
}
AnyData::operator int()
{
int iTemp = 0;
if (m_pStor != NULL)
m_pStor->CopyData((char*)&iTemp);
return iTemp;
}
AnyData::operator char()
{
char chTemp = 0;
if(m_pStor != NULL)
m_pStor->CopyData((char*)&chTemp);
return chTemp;
}
AnyData::operator float()
{
float fTemp = 0;
if (m_pStor != NULL)
m_pStor->CopyData((char*)&fTemp);
return fTemp;
}
//{
//...
//public:
//operator int(){}
//operator char(){}
//operator float(){}
//}
//在这里, operator前不能指明任何返回类型.
这段代码要有返回类型。你以前那段代码是对的。
你打开StorageInt.h看一下这个StorageInt类有没有int -> StorageInt类型
的拷贝函数。如果没有,你得显式转换才行
难道"="号的左边没有东西?这样“=xxx;”用,能行么?
其实我的代码是没错,错误在于我把应该放在StorageInt.cpp的实现在我代码放在了Storage.h内,真是惭愧!!
再次感谢大家!!每人都有酬谢!!!