#include<iostream>using namespace std;class Clock{ public: Clock():hour(0),minute(0),second(0){} Clock(int a=0,int b=30, int c=40):hour(a),minute(b),second(c){ } void Display(){ cout<<hour<<":"<<minute<<":"<<second<<endl; } void SetValue(int a=0, int b=30, int c=40){ hour=a; minute=b; second=c; } private: int hour; int minute; int second;};int main(){ Clock o1(14); Clock o2(15, 40); Clock o3(15, 40, 59); Clock o4; o1.Display(); o2.Display(); o3.Display(); o4.Display(); o4.SetValue(23); o4.Display(); return 0;}这段代码为什么会有[错误] 需要成员'Display' in 'o4', 它是非类(non-class)的类型 'Clock()'
时间: 2024-01-15 16:04:05 浏览: 18
这个错误是因为在 `main` 函数中创建了一个 `o4` 对象,并且使用了默认构造函数 `Clock()` 来初始化它。但是代码中没有定义默认构造函数 `Clock()`,因此编译器无法找到 `Display()` 函数。
要解决这个问题,您可以在 `Clock` 类中定义一个默认构造函数,例如:
```cpp
Clock():hour(0),minute(0),second(0){ }
```
这样就可以保证 `Clock` 对象在默认构造时会被正确初始化,并且可以调用 `Display()` 函数。
相关问题
#include <iostream> using namespace std; class Clock{ public: void setTime(int newH = 0, int newM = 0, int newS = 0); void showTime(); private: int hour, minute, second; }; void Clock::setTime(int newH, int newM, int newS){ hour = newH; minute = newM; second = newS; } void Clock::showTime(){ cout << hour << ":" << minute << ":" << second; } int main(){ Clock myClock; myClock.setTime(8, 30, 30); myClock.showTime(); return 0; }解释每行代码
```
#include <iostream> // 引入输入输出流库
using namespace std; // 使用std命名空间
class Clock{ // 定义一个类
public: // 公共成员
void setTime(int newH = 0, int newM = 0, int newS = 0); // 设置时间的函数
void showTime(); // 显示时间的函数
private: // 私有成员
int hour, minute, second; // 小时、分钟、秒钟
};
void Clock::setTime(int newH, int newM, int newS){ // 设置时间的函数
hour = newH; // 设置小时
minute = newM; // 设置分钟
second = newS; // 设置秒钟
}
void Clock::showTime(){ // 显示时间的函数
cout << hour << ":" << minute << ":" << second; // 输出时间
}
int main(){ // 主函数
Clock myClock; // 创建一个Clock对象
myClock.setTime(8, 30, 30); // 设置时间为8点30分30秒
myClock.showTime(); // 显示时间
return 0; // 返回0
}
```
以上代码定义了一个Clock类,包含了设置时间和显示时间的函数。在主函数中创建了一个Clock对象,并调用了该对象的设置时间和显示时间函数,最终输出了8点30分30秒。
设计Clock类,成员数据包含时(hour)分(minute)秒(second),都是int类型,根据给定的main函数设计必要的成员函数。 main函数已给定,提交时只需要提交main函数外的代码部分。 #include<iostream> using namespace std; //你提交的代码在这里 int main() { Clock c1,c2(12,25,38); cout<<"Show object c1:"; c1.Show(); cout<<"Show object c2:"; c2.Show(); int h,m,s; cin>>h>>m>>s; cout<<"Reset and Show object c1:"; c1.Set(h,m,s); c1.Show(); cin>>h>>m>>s; cout<<"Reset and Show object c2:"; c2.Set(h,m,s); c2.Show(); return 0; } 输入 2行,每行3个整数,分别表示时、分和秒。数据保证合法。 输出 输出包含4行,按照样例输出格式输出。 输入样例 1 0 0 0 23 59 59 输出样例 1 Show object c1:8:16:24 Show object c2:12:25:38 Reset and Show object c1:0:0:0 Reset and Show object c2:23:59:59
```cpp
#include<iostream>
using namespace std;
class Clock{
private:
int hour, minute, second;
public:
Clock(){
hour = 8; minute = 16; second = 24;
}
Clock(int h, int m, int s){
hour = h; minute = m; second = s;
}
void Set(int h, int m, int s){
hour = h; minute = m; second = s;
}
void Show(){
cout << hour << ":" << minute << ":" << second << endl;
}
};
int main() {
Clock c1,c2(12,25,38);
cout<<"Show object c1:";
c1.Show();
cout<<"Show object c2:";
c2.Show();
int h,m,s;
cin>>h>>m>>s;
cout<<"Reset and Show object c1:";
c1.Set(h,m,s);
c1.Show();
cin>>h>>m>>s;
cout<<"Reset and Show object c2:";
c2.Set(h,m,s);
c2.Show();
return 0;
}
```