免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11643 | 回复: 6
打印 上一主题 下一主题

[C++] 错误:error LNK2019: 无法解析的外部符号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-14 19:25 |只看该作者 |倒序浏览
#include<iostream>
using namespace std;
class Clock        //时钟类声明
{
  public:        //外部接口
          Clock(int NewH=0, int NewM=0, int NewS=0);
          void ShowTime();
          Clock&  operator ++();  //前置单目运算符重载
          Clock operator ++(int);  //后置单目运算符重载
  private:        //私有数据成员
          int Hour,Minute,Second;
};
void Clock::ShowTime()
{
        cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
}

Clock& Clock:perator ++()        //前置单目运算符重载函数
{        Second++;
        if(Second>=60)
        {   Second=Second-60;
             Minute++;
             if(Minute>=60)
             {
                  Minute=Minute-60;
                  Hour++;
                  Hour=Hour%24;
             }
        }
    return *this;
}//后置单目运算符重载
Clock Clock:perator ++(int)       
{                //注意形参表中的整型参数
   Clock old=*this;
   ++(*this);
   return old;
}
//其它成员函数的实现略

void main()
{
        Clock myClock(23,59,59);
        cout<<"First time output:";
        myClock.ShowTime();
   cout<<"Show myClock++:";
   (myClock++).ShowTime();
   cout<<"Show ++myClock:";
        (++myClock).ShowTime();
}


出错信息是:1>------ 已启动全部重新生成: 项目: VS2010, 配置: Debug Win32 ------
1>生成启动时间为 2011/3/14 19:17:31。
1>_PrepareForClean:
1>  正在删除文件“Debug\VS2010.lastbuildstate”。
1>InitializeBuildStatus:
1>  正在对“Debug\VS2010.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  main.cpp
1>main.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Clock::Clock(int,int,int)" (??0Clock@@QAE@HHH@Z),该符号在函数 _main 中被引用1>D:\Users\liuhuibin\Documents\visual studio 2010\Projects\VS2010\Debug\VS2010.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>
1>生成失败。
1>
1>已用时间 00:00:00.89
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

论坛徽章:
0
2 [报告]
发表于 2011-03-14 19:35 |只看该作者
构造函数未定义 只是声明了而已...

论坛徽章:
0
3 [报告]
发表于 2011-03-14 19:35 |只看该作者
你的构造函数都没有实现
Clock::Clock(int NewH, int NewM, int NewS)
{
}

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:172015亚冠之水原三星
日期:2015-06-02 16:34:202015年亚冠纪念徽章
日期:2015-10-19 18:13:37程序设计版块每日发帖之星
日期:2015-11-08 06:20:00
4 [报告]
发表于 2011-03-14 19:42 |只看该作者
#include<iostream>
using namespace std;
class Clock        //时钟类声明
{
  public:        //外部接口
          Clock(int NewH=0, int NewM=0, int NewS=0){};

论坛徽章:
0
5 [报告]
发表于 2011-03-14 19:59 |只看该作者
另外还存在一个问题 三个参数都默认传0

当你这样:Clock clock;
定义对象时 会出现歧义...

论坛徽章:
0
6 [报告]
发表于 2011-03-14 20:03 |只看该作者
谢谢啦,改正试试去,呵呵

论坛徽章:
0
7 [报告]
发表于 2011-03-14 20:18 |只看该作者
谢谢大家,修改完成了,结果正确
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP