问个C++问题

#include<iostream>usingnamespacestd;classtime{public:time(inth=0,intm=0,ints=0):hour(... #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;
}
编译不过去 错在哪 请大侠指点
1楼的不是那个问题
我就是全部定义为public也不能通过啊
定义time类的p3然后p3志向get_time
编译是在main下面第1行报的错
展开
 我来答
哈种种
2007-02-10 · TA获得超过2605个赞
知道小有建树答主
回答量:1811
采纳率:0%
帮助的人:1209万
展开全部
int *p1=&t1.hour; 这里,hour是个私有变量,你不能从外部访问

void(time::*p3)=&time::get_time;
还有这句,我不知道你要做什么,类没定义对象前是不分配内存的,你让一个指针指向哪?

我明白你的意思了,指针要指向的是对象,而不是类
我修改了一下代码你看看能不能编译,我这没有编译器,等你的结果,给我发信息。
#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();
time *p3=&t1;
(*p3).get_time();
return 0;
}
wxwsmn
2007-02-10 · TA获得超过139个赞
知道答主
回答量:68
采纳率:0%
帮助的人:36.8万
展开全部
time(int h=0,int m=0,int s=0):hour(h),minute(m),sec(s){}
后面要加“;”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式