.cpp(36): error C2352: “Time::get_time”: 非静态成员函数的非法调用

//test.cpp:定义控制台应用程序的入口点。//student.h#include"stdafx.h"#include<iostream>#include<stri... // test.cpp : 定义控制台应用程序的入口点。
//student.h
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class Time
{
public:
Time(int,int,int);
int hour;
int minite;
int sec;
void get_time();
};
Time::Time(int h,int m,int s)
{
hour=h;
minite=m;
sec=s;
}
void Time::get_time()
{
cout<<hour<<":"<<minite<<":"<<sec<<endl;
}
int main()
{
Time t1(10,13,56);
int *p=&t1.hour;
cout<<*p<<endl;
t1.get_time();
Time *p2=&t1;
p2->get_time();
void (Time::*p3)();
p3=&Time::get_time();
(t1.*p3)();
return 0;
}
运行环境vs2010
展开
 我来答
Brooklebu
推荐于2016-04-15 · TA获得超过281个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:302万
展开全部
Time::get_time();改成t1.get_time();或把get_time()改成静态成员函数
get_time()不是static成员函数,你Time::get_time()这么调用,编译器不知道get_time()的实体在哪里
追问
改成t1.get-time();了  但是还有个错误>test.cpp(36): error C2102: “&”要求左值
追答
不好意思,没看到你是用函数指针,应该改成p3=&Time::get_time;把()去掉
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式