在c++中,类的静态成员函数可以通过类的指针访问类的非静态数据成员吗?

2025-02-14 08:41:37
推荐回答(3个)
回答1:

可以的,不过要间接访问。看下面的例子

#include 
using std::cout;
using std::endl;
class A{
 int data;
 public: A(int i):data(i)
 {
  cout<<"new"<  };
  A():data(0)
  {
   cout<<"new A"<  }; 
  A(const A& a){
   data=a.data;
   cout<<"new A copy"<  }; 
  ~A()
  {
   cout<<"delete"<  };
  static void access(A*a)//静态成员,参数为对象指针
  {
   a->data++;
   cout<data<  }
 };
 
 int main()
 {
     A b(2);
     b.access(&b);//静态成员函数访问
     return 0;
 }

回答2:

静态成员函数访问非静态成员,必须用用对象作为参数

回答3:

简单来说就是不行。