当前位置: 编程技术>c/c++/嵌入式
关于C++静态成员函数访问非静态成员变量的问题
来源: 互联网 发布时间:2014-10-21
本文导语: 代码如下:class a{public: static FunctionA() { menber = 1; } private: int menber;}编译上述代码,出错。原因很简单大家都知道,静态成员函数不能访问非静态成员,这是因为静态函数属于类而不是属于整个对象,静态函数中的 me...
代码如下:
class a
{
public:
static FunctionA()
{
menber = 1;
}
private:
int menber;
}
编译上述代码,出错。原因很简单大家都知道,静态成员函数不能访问非静态成员,这是因为静态函数属于类而不是属于整个对象,静态函数中的 member可能都没有分配内存。静态成员函数没有隐含的this自变量。所以,它就无法访问自己类的非静态成员。
那要想访问怎么办呢?地球人都知道只要将:
代码如下:
int menber;
//change the line above to:
static int menber;
但是这个方法让我们不得不将static function内用到的成员变量都变成static的了,而且static的成员还要显式初始化,有没有更好的方法?答案是肯定的。代码说话:
代码如下:
class a
{
public:
static FunctionA(a* _a)
{
_a-> menber = 1;
cout
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!