如何解决此错误:错误使用className :: className?

时间:2020-02-18 16:50:18

标签: c++ oop object

得到错误:className :: className的无效使用。

试图创建一个代表一天中某个时间的timeStamp类,它在特定变量中存储秒,分钟,小时。在主要功能的第13行中遇到错误,该错误显示为:无效地使用了timeStamp :: timeStamp 我怎么办? 有一个标头文件,其中声明了所有方法。

源文件cpp:

    #include "timeStamp.h"
#include <iostream>
using namespace std;

timeStamp::timeStamp()
{
    Hour = 0;
    Minute = 0;
    Second =0;
}
timeStamp::timeStamp(int h, int m, int s){

Hour = h;
Minute = m;
Second = s;

}
int timeStamp::getHour(){

return Hour;
}

int timeStamp::getMinute(){
return Minute;
}
int timeStamp::getSecond(){
return Second;
}

bool timeStamp::operator!=(timeStamp t){

    if (Second ==t.Second && Minute ==t.Minute && Hour ==t.Hour)
        return true;
    else
        return false;

}

void timeStamp::Print()
{
    std:: cout<<"Hour:"<<Hour<<"\nMinute:"<<Minute<<"\nSecond:"<<Second<<std::endl;
}

主要

#include <iostream>
#include "timeStamp.cpp"

using namespace std;

int main()
{
    timeStamp obj1, obj2;
    int h,m,s;

        cout<<"Give hour minute and second:";
        cin>>h>>m>>s;
        obj1.timeStamp(h,m,s); //error
        cout<<"Give H M S";
        cin>>h>>m>>s;
        obj2.timeStamp(h,m,s);

        bool isEqual = obj1 ! = obj2;
        cout<<isEqual<<endl;

}

1 个答案:

答案 0 :(得分:2)

那不是构造对象的方式。

您必须在定义时提供构造函数参数。

以后不能像函数一样调用构造函数。

int main()
{
    int h,m,s;

    cout<<"Give hour minute and second:";
    cin>>h>>m>>s;
    timeStamp obj1(h,m,s);

    cout<<"Give H M S";
    cin>>h>>m>>s;
    timeStamp obj2(h,m,s);

    bool isEqual = obj1 ! = obj2;
    cout<<isEqual<<endl;
}

我确信您的书会对此进行更详细的介绍。

相关问题