当前位置: 首页 > 面试题库 >

类定义中的分号

柴兴修
2023-03-14
问题内容

我正在读这个东西,这里是一个代码示例:

struct X {
  static bool f( int* p )
  {
    return p && 0[p] and not p[1:>>p[2];
  };
};

问题是:合规的编译器应产生多少错误:

我回答了一个,因为此代码等效于

struct X {
  static bool f( int* p )
  {
    return p && p[0] && ! p[1] > p[2];
  };
};

而且我在想,在静态函数定义之后加分号将是一个错误。但是萨特先生说0并解释了(除了我确实理解的事情)

函数声明的末尾允许使用“额外”分号。

我的问题是:

标准中的哪些文本允许这样做?
这仅指成员函数吗?
分号可以出现在两个成员之间还是在类定义的任何其他位置?

struct X { int a;;;;int b; //Legal? };


问题答案:

是的,在类说明符中的函数声明后明确允许使用分号。结果,当前在C ++ 0x草案中,以下内容也有效:第一个分号属于函数定义,第二个分号属于类说明符,委托给函数定义非终结符。

struct A {
  void f() = delete;;
};

但是三个分号是非法的。和具有主体的函数定义之后的两个分号一样。规范中的相应文字为处的语法9.2[class.mem]。

函数定义之后的分号已在C 03中被允许,但在函数定义后的命名空间范围内不允许使用分号。C 0x通过引入空声明来解决此问题。但是,只有当您在类主体外部使用函数定义后有分号时,这些命令才会出现。

Sutter在函数声明的末尾谈论“额外”分号,但这并不完全正确。因为以下语法无效

struct A {
  void f();; // invalid!
};

类说明符中的多余分号仅在function-definition之后有效。另外,作为检查时的检查,9.2当函数定义是模板时无效

struct A {
  template<typename T> void f() { }; // invalid!
};

这是因为它由模板声明(最终将自身最终将其余文本解析为函数定义)进行解析,而类说明符;之后没有附加的声明。



 类似资料:
  • 我正在使用wordpress和自定义post类型的UI插件和ACF插件。试图通过自定义分类法构建具有多个自定义文章类型提要的“单个”模板。使用这段代码,通过一些变化来找出我做错了什么。 连续得到2段这样的代码 是一个分类字段。上面显示的代码只显示了所有的“产品”帖子。我还尝试使用带有taxonomy slug的文本字段。如果我不使用first if语句(

  • 类的定义 1.定义基类 任何不从另一个类继承的类都是所谓的基类 Swift类不会从一个通用基类继承. 你没有指定特定父类的类都会以基类的形式创建. class Vehicle { var currentSpeed = 0.0 var description: String { "traveling at \(currentSpeed) miles per hour"

  • 我的股票与分页我尝试了很多解决方案,但没有工作!我使用WordPress5.4。我的网站是一个单页网站,当然我想在索引中使用它。php 这是我的密码: 很抱歉,如果这是一个高度重复的问题——我发现的其他修复方法都不适用于我。请有人告诉我问题在哪里? 谢谢! 编辑1我尝试了这个,它也不工作!

  • 更新2添加名称作为字段,而不是段塞,并添加the_title()只需给我一个页面标题的回声... 更新Jonnhyd23的代码非常有效!!谢谢有没有一种方法可以使术语变得动态?就像标题是阿姆斯特丹一样,我能做一些类似于

  • 我有一个自定义的文章类型(媒体文章),它使用一些自定义字段,有一个自定义分类法(媒体文章类别)和该分类法中的14个术语。我可以使用CPT归档模板输出所有自定义帖子。 我在侧边栏中还有一个菜单,它列出了用于过滤自定义帖子的术语(我使用了一个自定义WP菜单小部件来创建列表)。 我用一个查询设置了一个自定义分类模板。根据args中放置的分类术语,我能够成功地组合或单独显示帖子。因此,如果我不需要使用过滤

  • 我正在尝试创建一个查询,其中我在自定义帖子类型中创建了多个类别(分类法),然后在主页上根据具体的内容进行查询,这样做很好。目前我有3种分类法: 当前特价 meineke-差异 特色 我已经编写了拉动这些的代码。我遇到的问题是,在主页上,当这些帖子也附加到“特色”分类法时,它只需要拉这些帖子。因此,这方面的标准逻辑示例如下: 如果分类法=当前特价商品和特色商品,则成功或失败 但是它所做的是把它们都拉