今天再AFX.INL这个文件里面看到了这么两行代码
_AFX_INLINE CArchive& AFXAPI operator>>(CArchive& ar, CObject*& pOb)
{ pOb = ar.ReadObject(NULL); return ar; }
_AFX_INLINE CArchive& AFXAPI operator>>(CArchive& ar, const CObject*& pOb)
{ pOb = ar.ReadObject(NULL); return ar; }然后我自己仿着试了一下,结果总是报错,像这样
error C2264: '+' : error in function definition or declaration; function not called
error C2088: '+' : illegal for class请问为什么在MFC类库中写了这样两个基本上一样的运算符重载不报错呀。
这是我仿照的代码。#include "stdafx.h"
class C1
{
public:
int m_aa;};
void operator +(C1 c,int l)
{
printf("1");
}
void operator +(C1 c,const int l)
{
printf("2");
}int main(int argc, char* argv[])
{
C1 c1;
int o=22;
c1+o;
return 0;
}
_AFX_INLINE CArchive& AFXAPI operator>>(CArchive& ar, CObject*& pOb)
{ pOb = ar.ReadObject(NULL); return ar; }
_AFX_INLINE CArchive& AFXAPI operator>>(CArchive& ar, const CObject*& pOb)
{ pOb = ar.ReadObject(NULL); return ar; }然后我自己仿着试了一下,结果总是报错,像这样
error C2264: '+' : error in function definition or declaration; function not called
error C2088: '+' : illegal for class请问为什么在MFC类库中写了这样两个基本上一样的运算符重载不报错呀。
这是我仿照的代码。#include "stdafx.h"
class C1
{
public:
int m_aa;};
void operator +(C1 c,int l)
{
printf("1");
}
void operator +(C1 c,const int l)
{
printf("2");
}int main(int argc, char* argv[])
{
C1 c1;
int o=22;
c1+o;
return 0;
}
解决方案 »
- Windows CE 使用串口问题
- vs2005中关于dbf格式文件的问题
- 请教如何构造网络包
- 怎么设置 button 不出现立体感觉,就让它象个平的
- 下拉列表框显示条数的问题
- 如何得到另一个程序的对话框中edit框的text?
- 制作CPropertySheet高级界面,谁有例子呀!高分
- 如何在插入一条记录后得到该条记录的编号?
- 在程序中有嵌入一段asm代码,在别人的机器上可以编译,在我的机器上却出现error c2415的错误?
- 写一个Activex控件,如何实现自定义事件?如何触发类似Click等一些固有事件?
- 关于MFC设置程序名称的小问题
- 我用的vc2008,新建工程时不能生成文件,类似空工程!跪求解决方法
{
printf("1");
}void operator +(C1 c, const int* l)
{
printf("2");}