C++:调用无参数的构造函数为啥不加括号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++:调用无参数的构造函数为啥不加括号相关的知识,希望对你有一定的参考价值。

如图加了括号之后报错内容是什么意思

1、不使用初始化语句;
2、不使用延时语句;
3、不使用循环次数不确定的语句,如:forever,while等;
4、尽量采用同步方式设计电路;
5、尽量采用行为语句完成设计;
6、always过程块描述组合逻辑,应在敏感信号表中列出所有的输入信号;
7、所有的内部寄存器都应该可以被复位;
8、用户自定义原件(UDP元件)是不能被综合的。
一:基本
Verilog中的变量有线网类型和寄存器类型。线网型变量综合成wire,而寄存器可能综合成WIRE,锁存器和触发器,还有可能被优化掉。
二:verilog语句结构到门级的映射
1、连续性赋值:assign
连续性赋值语句逻辑结构上就是将等式右边的驱动左边的结点。因此连续性赋值的目标结点总是综合成由组合逻辑驱动的结点。Assign语句中的延时综合时都将忽视。
2、过程性赋值:
过程性赋值只出现在always语句中。
阻塞赋值和非阻塞赋值就该赋值本身是没有区别的,只是对后面的语句有不同的影响。
建议设计组合逻辑电路时用阻塞赋值,设计时序电路时用非阻塞赋值。
过程性赋值的赋值对象有可能综合成wire, latch,和flip-flop,取决于具体状况。如,时钟控制下的非阻塞赋值综合成flip-flop。
过程性赋值语句中的任何延时在综合时都将忽略。
建议同一个变量单一地使用阻塞或者非阻塞赋值。
3、逻辑操作符:
逻辑操作符对应于硬件中已有的逻辑门,一些操作符不能被综合:===、!==。
4、算术操作符:
Verilog中将reg视为无符号数,而integer视为有符号数。因此,进行有符号操作时使用integer,使用无符号操作时使用reg。
参考技术A 使用无参构造函数创建对象时,不应该在对象名后面加上括号。这是规矩,你遵守就好了。追问

那报错的这句话是什么意思呢?

追答

Clock c2();这句把括号去掉就好了

参考技术B 如果是Clock c2();,则是在进行函数的声明。函数名为c2,不需要参数,返回类型为Clock。 参考技术C 如果是Clock c2();,则是在进行函数的声明。函数名为c2,不需要参数,返回类型为Clock。

以上是关于C++:调用无参数的构造函数为啥不加括号的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 C++ 中用 new 调用参数化构造函数?

收到“未定义无参数构造函数”错误,不知道为啥

C++ 为啥基类/结构构造函数不能有多个参数可以从派生中隐式调用?

为啥 C# 3.0 对象初始值设定项构造函数括号是可选的?

为啥复制构造函数应该在 C++ 中通过引用来接受它的参数?

为啥没有构造函数参数的类需要括号