所以我很乐意在发生这种情况时定义一个新课程:
class Thing : public OtherThing
{
public:
Thing : public OtherThing();//here
};
我真的不知道为什么视觉辅助/工作室这样做了,我以前从未见过它,所以我的问题是什么意思呢?
为了清楚起见,我通常会定义相同的类:
class Thing : public OtherThing
{
public:
Thing();
};
答案 0 :(得分:1)
public
关键字在2个上下文中定义:
当类使用
public
成员访问说明符从基类派生时,基类的所有public
成员都可以作为派生类的public
成员和所有{{1}访问基类的成员可以作为派生类的protected
成员访问(基础的protected
成员永远不可访问,除非有朋友) [source]
公共成员构成类的公共接口的一部分(公共接口的其他部分是Argument-Dependent Lookup找到的非成员函数)。
任何地方的公共成员都可以访问。 [source]
由于您演示的代码未声明继承( 1 )或指定成员访问权限( 2 ),因此无效使用该关键字,因此无法编译。
我看到你的陈述this compiles for you,但实际上这不能在gcc:http://ideone.com/Z33viJ或Visual Studio 2015中编译,你可以通过这里进行验证:http://webcompiler.cloudapp.net/唯一合理的解释我能想到的是,有一个故障,你的编辑器显示的代码不是写入文件的,因此不是正在编译的代码。如果是这种情况,重启Visual Studio可能会解决问题。