如何修复私有的静态成员中的错误?

时间:2019-02-13 09:05:15

标签: c++ variables static declaration member

为什么我被称为私有成员?因为我是静态成员,所以它不能在第19行出现错误

#include<iostream>
using namespace std;
class myClass{
    static int i;
public:
    void seti(int a)
    {
        i=a;
    }
    int geti()
    {
        return i;
    }
};
int myClass::i;
int main()
{
    myClass ob1,ob2;
    cout<<myClass::i<<endl;
    ob1.seti(200);
    cout<<ob1.geti()<<endl;
    cout<<ob2.geti()<<endl;
}

1 个答案:

答案 0 :(得分:0)

这里的问题是class的成员属性默认情况下为private。这意味着i是私有的,您不能从班级外部访问它。

一种解决方案是将i声明为公共成员。

class myClass{
public:
    static int i;
    void seti(int a)
    {
        i=a;
    }
    int geti()
    {
        return i;
    }
};

PS:struct的成员默认是公开的