C++静态成员函数
时间:2006-09-05 来源:oliliango
之前用到C++的时候都没有用到所谓的静态成员函数,一般用到这个的时候都申明为普通的C函数了。后来又看到一种说法就是用这种静态的成员函数有利于封装。但是一直没有用过。
昨天室友用到这个部分,他之前用java比较多,现在用C++做类似的工作,用java的习惯语法来写了,出了不少问题。在用到静态成员函数的时候就出了一些编译错误,令人费解。问题如下:
首先申明类如下:
然后实现为:
调用:
编译错误:
错误:不能将成员函数 ‘static void A::say()’ 声明为有静态链接
后来问了人才知道原来是实现的问题。应该实现为:
就是说,在实现的时候不用加上static关键字了。仔细想想也是有一定的道理了。这样的小问题有时侯真的容易被忽略。
存此备忘。
昨天室友用到这个部分,他之前用java比较多,现在用C++做类似的工作,用java的习惯语法来写了,出了不少问题。在用到静态成员函数的时候就出了一些编译错误,令人费解。问题如下:
首先申明类如下:
class A { public: static void say(); }; |
然后实现为:
static void A::say() { cout<<"hello,world!"<<endl; } |
调用:
A::say(); |
编译错误:
错误:不能将成员函数 ‘static void A::say()’ 声明为有静态链接
后来问了人才知道原来是实现的问题。应该实现为:
void A::say() { cout<<"hello,world!"<<endl; } |
就是说,在实现的时候不用加上static关键字了。仔细想想也是有一定的道理了。这样的小问题有时侯真的容易被忽略。
存此备忘。
相关阅读 更多 +