急 C++程序

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:20:02
#include<iostream>
using namespace std;
class time
{
public:
time(int h=0,int m=0,int s=0):hour(h),minute(m),sec(s){}
void get_time();
private:
int hour;
int minute;
int sec;
};
void time::get_time()
{cout<<hour<<":"<<minute<<":"<<sec<<endl;}
int main(void)
{
time t1(10,13,56);
int *p1=&t1.hour;
cout<<*p1<<endl;
t1.get_time();
time *p2=&t1;
p2->get_time();
void(time::*p3)=&time::get_time;
(t1.*p3)();
return 0;
}
能说说错在哪吗 最好帮我改改

错误一 int *p1=&t1.hour; hour的属性是private
错误二 void(time::*p3)=&time::get_time;这是定义函数指针,少括号了
应该是void (time::*p3)()=&time::get_time;

标点符号的错就不说了

其实还有一点,最好把析构函数也显式地写出来,当然这不是错.这是一个很好的习惯.

哦 还有就是main函数括号中别有void啊

我刚才帮你改的不能编译么?

hour是私有变量,不能别外部访问

hour是私有变量,不能别外部访问
回答者:¢幻冰 - 魔法师 四级 2-11 00:37

另外,*p3没有定义