编译C++货币转换程序时遇vtable与WinMain未定义引用错误求助
解决方案
针对undefined reference to 'vtable for Currency'错误
- 检查
Currency抽象基类的虚函数:- 若基类包含非纯虚的虚函数(未加
=0标记),必须在currency.cpp中提供完整的函数实现,不能仅在头文件声明。 - 确认
Euro、Dollar子类都正确重写了基类的纯虚函数,函数签名要完全匹配(返回值、参数列表、const修饰符等都不能出错)。
- 若基类包含非纯虚的虚函数(未加
- 验证
currency.cpp已加入Dev C++项目:
打开项目面板查看是否包含该文件,若未添加,右键项目 -> 添加 -> 添加已存在文件,选中currency.cpp即可。
针对undefined reference to 'WinMain'错误
- 修改项目类型为控制台应用:
- 点击菜单栏
工具->编译选项; - 选择
代码生成/优化->输出文件; - 将
输出格式从Windows程序切换为控制台程序; - 确保
currency_main.cpp中有标准的main()函数入口,比如int main()或int main(int argc, char* argv[])。
- 点击菜单栏
内容的提问来源于stack exchange,提问作者Merlin
相关产品推荐
相关产品推荐

