首页 > 解决方案 > 如何修复私有静态成员中的错误?

问题描述

为什么我被称为私有?因为我是静态成员,那么它一定不是第 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;
}

标签: c++variablesstaticdeclarationmember

解决方案


这里的问题是默认情况下a 的成员属性是classprivate这意味着它i是私有的,您无法从课堂外访问它。

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

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

PS:a的成员struct默认是public


推荐阅读