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

问题描述 投票:0回答:1

为什么我被称为私有?因为我是静态成员,所以它不能是第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++ variables static declaration member
1个回答
0
投票

这里的问题是class的成员属性默认为private。这意味着i是私人的,你无法从课外访问它。

一种解决方案是宣布i为公共成员。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.