访问说明符不会更改可访问性级别.这是什么意思

Access Specifier Does Not Change Accessibility Level. What does this mean?

本文关键字:访问 意思 是什么 说明符      更新时间:2023-10-16

我只是想知道此消息在Visual Studio上的含义。这是否意味着默认情况下类内部的变量设置为私有。我在任何地方都无法对此问题有明确的答案。

这是我的代码:

#pragma once
class number
{
private: // <-- that is grey in the IDE and it shows the text box when you hover over it
    int random_number; 
public:
    number(int x); 
    int get_number() const { return random_number; }
    void set_number(int number) { random_number = number; }
    ~number();
};

如果您没有指定任何内容,则当您通过class关键字定义类时,private是隐式的。换句话说,以下定义是相同的:

class C {
    int i;
};
class C {
private:
    int i;
};

如果您使用关键字struct而不是class

,则相反的情况是正确的。
struct C {
    int i;
};
struct C {
public:
    int i;
};

也就是说,Visual Studio告诉您private是多余的。在两种情况下,您的数据成员都是私人的。

您可能会偶然地连续两次写公共或私人写作。第二个访问说明符无能为力。默认情况下,类内部的变量设置为私有,结构内部的变量设置为公共,因此这也可能是消息的原因。