.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 展开
//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 展开
1个回答
展开全部
Time::get_time();改成t1.get_time();或把get_time()改成静态成员函数
get_time()不是static成员函数,你Time::get_time()这么调用,编译器不知道get_time()的实体在哪里
get_time()不是static成员函数,你Time::get_time()这么调用,编译器不知道get_time()的实体在哪里
追问
改成t1.get-time();了 但是还有个错误>test.cpp(36): error C2102: “&”要求左值
追答
不好意思,没看到你是用函数指针,应该改成p3=&Time::get_time;把()去掉
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询