回 帖 发 新 帖 刷新版面

主题:求助:这是什么错误

#include <iostream>
using namespace std;
class time
{
public:
    int hour;
    int minute;
    int second;
};
int main()
{
    void set_time(time&);
    void show_time(time&);
    time t;
    set_time(t);
    show_time(t);
    return 0;
}
void set_time(time&t)
{
    cin>>t.hour>>t.minute>>t.second ;
}
void shoe_time(time&t)
{
    cout<<t.hour<<":"<<t.minute<<":"<<t.second;
}



Cpp1.obj : error LNK2001: unresolved external symbol "void __cdecl show_time(class time &)" (?show_time@@YAXAAVtime@@@Z)
Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Cpp1.exe - 2 error(s), 0 warning(s)

回复列表 (共7个回复)

沙发

void shoe_time(time&t)
{
    cout<<t.hour<<":"<<t.minute<<":"<<t.second;
}

仔细看看shoe_time,因该是show_time吧,

板凳

首先数据应该是私有的 不是PUBLIC
time 的实现函数前必须标注它所属的类
我改了下 你看下:
#include <iostream>
using namespace std;
class time
{
    int hour;
    int minute;
    int second;
    public:
        time()        
        {
            hour=minute=second=0;
        }
        void set_time(int,int,int);
        void shoe_time ();
        

};

void time::set_time(int h,int m,int s)
{
    hour=h;
    minute=m;
    second=s;
}

    
    void time::shoe_time()
    {
        cout<<hour<<":"<<minute<<":"<<second<<endl;
    }
int main()
{
    time mytime;
    mytime.set_time(7,22,33);
    mytime.shoe_time();
    return 0;
}

3 楼

1楼正解。是你名字打错了,不是其他错误。

结构体完全可以用类来代替的。

4 楼


把main函数放在最后就不需在函数中声明后两个函数了.或用2楼的方法,编程要求要结构严紧,又尽量简明

5 楼

吧shoe改成show就好了

6 楼


是吗? shoe只是一个名字而已 什么不是一样

7 楼

void set_time(time&);和void show_time(time&);并没有访问类的权限,除非你把它们声明为友元函数。

我来回复

您尚未登录,请登录后再回复。点此登录或注册