今天再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;
}