问个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行报的错 展开
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行报的错 展开
2个回答
展开全部
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;
}
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询