构造函数中这种奇怪的冒号成员 (“:”) 语法是什么?

最近我看到了一个如下的例子: # 包括 类 Foo { 公众: Int bar; Foo (int num): bar (num) {}; }; Int main (void) { Std:: cout <<Foo (42).bar <std:: endl; 返回 0; } 这个奇怪的是什么: bar(num) mean? It somehow seems to initialize the member variable but I've never seen this syntax before. It looks like a function/constructor call but for an int?对我来说没有意义。也许有人可以开导我顺便问一下,像这样的深奥语言功能还有没有,你永远不会在普通的 C 书中找到? ……

共12个回答,已解决, 标签: c++ syntax constructor c++-faq ctor-initializer
一次包含多个头文件,只有一个 # Include-expression?

语法是否有可能同时包含多个标题,而不需要为每个文件编写 “# include”-expression new? 比如,例如: # 包括、/* 虚拟-表达式 1。*/ 或 # Include/* Dummy-Expression 2。*/ 问题是 C 和 C。 ……

共5个回答, 标签: c++ c syntax include header-files
到底是如何?: 操作员在 C 中工作?

我有一个问题,编译器如何操作以下代码: # 包含 Int main (无效) { Int b = 12,c = 11; Int d = (b = = c + +)?(c + 1): (c-1); Printf ("d = % i \ n",d); } 我不知道为什么结果是‍‍‍d = 11。 ……

共5个回答,已解决, 标签: c syntax increment conditional-operator post-increment
Golang 的定型铸造

我正在阅读以下文章:Https://www.ribice.ba/golang-enums/ [https://www.ribice.ba/golang-enums/] 其中一个代码示例中定义了一个函数: Func (lt * LeaveType) UnmarshalJSON (b [] 字节) 错误 { //定义第二类型以避免结束对 json 的递归调用。 类型 LT LeaveType; Var r * LT = (* LT) (lt); 错误: = json.Unmarshal (b,& r) 如果错误!= 零 { 恐慌 (错误) } 开关 * lt { 年假、病假、银行假日、其他: 返回零 } 返回错误。新 (“Inalid 离开类型”) } 语法是什么var r *LT = (*LT)(lt);在这个例子中做什么? ……

共5个回答,已解决, 标签: json pointers go syntax type-conversion
在列表 vs 系列中理解 Python 语法

我是数据科学 Python (没有计算机科学背景) 的新手。我一直听说 Python 很容易,但是我在不断进步。作为一个例子,我理解: Len (标题 [(标题年> = 1950) 和 (标题年 <= 1959) “在标题数据框中,创建一个系列,从标题数据框的年份列中获取大于或等于 1950年的任何内容,以及小于或等于 1959年的任何内容。取它的长度。” 但是当我遇到以下情况时,我不理解以下逻辑: T = 标题 (T.year/10*10).value _ count ().sort_index ().plot (种类 = 'bar') 或者 标题.value _ count ().head (10) 在这两种情况下,我显然可以把它拼凑起来。但目前还不清楚。第二,为什么 Python 不允许我像第一个例子一样使用方括号和常规括号? ……

共3个回答, 标签: python pandas syntax
在 Java 中创建通用列表数组的错误

首码: 列表 [] 数组 = (列表 []) 新对象 [大小]; 它将给出以下异常: java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class [Ljava.util.List; ([Ljava.lang.Object; and [Ljava.util.List; are in module java.base of loader 'bootstrap') 为什么这是错的?我只是跟着有效 Java 第三版:132 页的方法: 第二码: 数组 = (E []) 新对象 [大小]; 然而,我发现以下代码有效 第三码: 列表 [] 数组 = (列表 []) 新列表 [大小]; 我的问题: 1. 为什么第一个代码是错误的,但是第二个代码是在有效的 Java?有什么我误解的吗? 例如: 为什么下面的代码运行良好,但是第一个代码是错误的? 公共类测试 { E 【】数组; 公共测试 () { 数组 = (E []) 新对象 [月]; } 公共 E 组 (E x) { 数组 [0] = x; ……

共3个回答,已解决, 标签: java arrays generics syntax
是否有一个基本的 R 函数来动态排序 data.frame 列,类似于 dplyr everything ()?

假设你有一个 data.frame,你希望使用 base R 动态地重新排序列。输入数据总是看起来像这样。它将始终包含 id 、月份和年份变量,以及可变数量的数据变量 (表示为 v1 、 v2 、 v3 等)。)) Df1 <-data.frame ( Id = 1:5, V1 = 字母 [1:5], V2 = 代表 (2,5), V3 = 代表 (10,5), 月 = c (“1月” 、 “3月” 、 “10月” 、 “12月”), 年 = c (1999,2001,1984,1979,2019), StringsAsFactors = F) 我想重新排序列,使 id 、月和年始终是前三列,然后将数据变量从列 4 开始。 Df2 <-data.frame ( Id = 1:5, 月 = c (“1月” 、 “3月” 、 “10月” 、 “12月”), 年 = c (1999,2001,1984,1979,2019), V1 = 字母 [1:5], V2 = 代表 (2,5), V3 = 代表 (10,5), StringsAsFactors = F) 我知道这可以用 dplyr:: select ……

共3个回答,已解决, 标签: r syntax
构造函数类型参数在放置 * 之前 * 类型时意味着什么?

我最近遇到了这种不寻常的 (对我来说) Java 语法.....。下面是它的一个示例: List list = new ArrayList(); 请注意类型参数的定位..。它不是在正常的类型之后, 而是在之前。我不介意承认我以前从来没见过这种语法。另请注意, 只有1的类型参数有 2个 ArrayList 类型参数。 类型参数的定位是否具有与将它们放在类型之后相同的含义?如果没有, 不同的定位意味着什么? 为什么只有1的情况下, 有2个类型参数是合法 ArrayList 的? 我已经搜索了通常的地方。Angelika Langer 和在这里, 但找不到任何地方提到这种语法除了在 ANTLR 项目的 Java 语法文件中的语法规则。 ……

共2个回答,已解决, 标签: java generics syntax constructor generic-type-argument
关于静态关键字的范围,c语言定义怎么说?

在 C 中,如果我有一节课: 类示例 { 静态 int s _ one,s _ two; ... }; 语言是否清楚地定义了s_Two也是静态的吗? 也就是说,不static keyword extent go everywhere the int goes, or can it be like * 只适用于一个变量? ……

共2个回答, 标签: c++ syntax static language-lawyer grammar
Haskell 里逃出符号意味着什么?

我看了看Haskell2010 [https://www.haskell.org/onlinereport/haskell2010/haskellch10.html#x17-17700010.2] 用 & and and 报告并注意到奇怪的逃生顺序:\&. I coudn't find explanation what this escape sequence should stand for. It also might only be located in strings. I tried print "\&"在 GHCi 中,它打印空字符串。 ……

共1个回答,已解决, 标签: haskell syntax escaping lexer