如何修复此错误:className::className的无效使用

How to fix this- error: Invalid use of className::className?

本文关键字:className 无效 何修复 错误      更新时间:2023-10-16

获取错误: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;
}

Main:

#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;
}

这不是构建对象的方式。

你必须在定义的时候给出构造函数的参数。

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

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;
}

我相信你的书对此会有更详细的介绍。