C++的类的静态成员函数的访问问题

原创 2015年07月08日 22:58:28

1.类中的静态成员函数访问此类中的非静态成员时只能通过对象名,访问静态成员时既能通过对象名也能通过类名。

2非静态的成员访问静态成员时只能通过对象。

3静态成员变量的初始化只能放在所有函数的外面。

对此我们可以举个例子:

class A
{
public :
A(int a=0){x=a;}
static void f1();
static void f2(A a);
private :
int x;
static int y;
};


void A::f2(A a)
{
cout << A::y;
//cout << x; Error
cout << a.x; //OK


}


void A::f1()
{
cout << A::y<<endl;
}


int main()
{
A::f1();//通过类名直接访问静态成员函数
A mA(3);
A ::f2(mA); 
mA.A::f1();
return 0;
}

相关文章推荐

C++中静态成员函数访问成员变量问题

C++会区分两种类型的成员函数:静态成员函数和非静态成员函数。这两者之间的一个重大区别是,静态成员函数不接受隐含的this自变量。所以,它就无法访问自己类的非静态成员。 左例中分别声明了...

问题记录:cocos2dx-C++静态成员函数的使用问题

/** Time: 2013-0818 Requirements: 1. 解决C++使用静态成员函数,编译后运行出错的问题;   */   情景:有class A,它只有一个共享方法生成一个实例,又有...
  • qimuya
  • qimuya
  • 2013年08月28日 14:39
  • 1625

C++类中的静态成员函数--static

为了能方便访问静态数据成员,C++定义了一种特殊的成员函数来

【C++面向对象】类的静态成员函数(static member functions)

一、静态成员函数的引入 在引入静态成员函数之前,C++语言要求所有的成员函数都必须经由该类的对象来调用。而实际上,只有当成员函数中有存取非静态数据成员时才需要类对象。类对象提供this指针给...

C++ 类非静态成员函数作为线程入口函数实现

///////////////////////////////////////////////////// //代码 #include #include #include #include ...

C++ 类中的静态变量和静态成员函数(转)

静态数据成员: 下面看一个例子:  #include class Point { public: void output() { } static void init() {...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++的类的静态成员函数的访问问题
举报原因:
原因补充:

(最多只允许输入30个字)