///////////////////////////////////////////////////////////////
//Base.h
#pragma once
class CBase
{
public:
CBase();
~CBase(void);
private:
void fun();
};
///////////////////////////////////////////////////////////////
Base.cpp
#include "StdAfx.h"
#include "Base.h"
CBase::~CBase(void)
{
}
CBase::CBase()
{
}
void CBase::fun()
{
}
//////////////////////////////////////////////////////
mian.cpp
#include "stdafx.h"
#define private public ///
#include "Base.h"
#include <map>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
CBase Object;
Object.fun();
return 0;
}
提示error LNK2019: 无法解析的外部符号 "public: void __thiscall CBase::fun(void)" (?fun@CBase@@QAEXXZ),该符号在函数 _main 中被引用
但是将
//Base.h
#pragma once
class CBase
{
public:
CBase();
~CBase(void);
private:
void fun() {};
};
就没有问题了
很奇怪#define private public
作用域已经到base头文件了,但是源文件连接不上