视觉工作室贫瘠浪费的奇怪事件

时间:2016-08-04 10:39:55

标签: c++ visual-studio-2012

所以我很乐意在发生这种情况时定义一个新课程:

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

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

为了清楚起见,我通常会定义相同的类:

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

1 个答案:

答案 0 :(得分:1)

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

  1. 将对基类成员的访问权限延迟到声明的访问级别:
  2.   

    当类使用public成员访问说明符从基类派生时,基类的所有public成员都可以作为派生类的public成员和所有{{1}访问基类的成员可以作为派生类的protected成员访问(基础的protected成员永远不可访问,除非有朋友) [source]

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

      公共成员构成类的公共接口的一部分(公共接口的其他部分是Argument-Dependent Lookup找到的非成员函数)。
        任何地方的公共成员都可以访问。 [source]

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

      我看到你的陈述this compiles for you,但实际上这不能在gcc:http://ideone.com/Z33viJ或Visual Studio 2015中编译,你可以通过这里进行验证:http://webcompiler.cloudapp.net/唯一合理的解释我能想到的是,有一个故障,你的编辑器显示的代码不是写入文件的,因此不是正在编译的代码。如果是这种情况,重启Visual Studio可能会解决问题。