gpt4 book ai didi

c++ - Visual Studio 贫瘠的荒地中发生的奇怪事件

转载 作者:行者123 更新时间:2023-11-28 05:33:57 24 4
gpt4 key购买 nike

所以当发生这种情况时,我只是很高兴地继续定义一个新类:

class Thing : public OtherThing
{
public:
Thing : public OtherThing();//here
};

我真的不知道为什么视觉辅助/工作室会这样做而且我以前从未见过它所以我的问题是它是什么意思?

为了清楚起见,我通常会像这样定义同一个类:

class Thing : public OtherThing
{
public:
Thing();
};

最佳答案

public关键字在 2 个上下文中定义:

  1. 将对基类成员的访问延迟到声明时使用的访问级别:

When a class uses public member access specifier to derive from a base, all public members of the base class are accessible as public members of the derived class and all protected members of the base class are accessible as protected members of the derived class (private members of the base are never accessible unless friended)[source]

  1. 为在此说明符之后声明的所有成员指定访问级别

Public members form a part of the public interface of the class (other parts of the public interface are the non-member functions found by Argument-Dependent Lookup).
A public member of a class is accessible everywhere.[source]

由于您演示的代码未声明继承 (1) 或指定成员访问权限 (2),因此该关键字的使用无效,不应编译。

我看到你的声明 this compiles for you , 但实际上这不能在 gcc 中编译:http://ideone.com/Z33viJ或者在 Visual Studio 2015 中,您可以在此处进行验证:http://webcompiler.cloudapp.net/我能想到的唯一合理的解释是出现故障,您的编辑器向您显示的代码不是已写入文件的代码,因此也不是正在编译的代码。如果是这种情况,也许重新启动 Visual Studio 可以解决问题。

关于c++ - Visual Studio 贫瘠的荒地中发生的奇怪事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38765068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com