程序找错
#include<iostream.h>
class tt{
public:
static double RaiseInterest(double x);//
static double Interest(){
return s_inr;
}
double tt(){
return m_mt;
}
private://私有成员用公用的方法调用
static double s_inr;
double m_mt;
};
inline double tt::RaiseInterest(double x){//
s_inr+=x;
return s_inr;
}
void main(){
tt unit;
double (tt::*pd)(double)=&tt::RaiseInterest;//指向类成员数据s_inr的指针pd
unit.*pd=5.0;//给s_inr赋值;
double (tt::*pf)()=&tt::Interest;//指向类的静态成员函数Interestd的指针
double daily=pf()/365*unit.tt();
cout<<unit.*pf<<endl;
}
[解决办法]
直接看编译器的提示
[解决办法]
#include<iostream>
using namespace std;
class tt{
public:
static double RaiseInterest(double x);//
static double Interest(){
return s_inr;
}
double get_m_mt(){
return m_mt;
}
private://私有成员用公用的方法调用
static double s_inr;
double m_mt;
};
double tt::RaiseInterest(double x){//
s_inr+=x;
return s_inr;
}
double tt::s_inr = 0;//类静态成员初始化
int main(){
tt unit;
double (*pd)(double) = tt::RaiseInterest;//指向类成员数据s_inr的指针pd
(*pd)(5.0);//给s_inr赋值;
double (*pf)() = tt::Interest;//指向类的静态成员函数Interestd的指针
double daily = pf()/365 *unit.get_m_mt();//这里语法上没问题,不了解Lz的意图(注意运算顺序)
cout<<pf()<<endl;
return 0;
}
/*
类的静态成员是整个类的属性,可以使用,类名::静态数据成员
参考
http://blog.sina.com.cn/s/blog_4aafb19b01000bkl.html
*/
[解决办法]
lz 主要的错误是 忘记了静态数据成员的初始化