关于 Test()的括号问题

#include <iostream>
#include <string>

using namespace std;
class Test
{
private:
	static int i;
public:
	Test()
	{
		++i;
	}
	int getI()
	{
		return i;
	}
	~Test()	
	{
		--i;
	}
};

int Test::i = 0;
Test t1;

int main()
{
	Test t2();
	cout << t1.getI() << endl;
	Test* p = new Test();
	cout << t2.getI() << endl;
	delete p;
	cout << t2.getI() << endl;
	return 0;
}

我在写C++第24课类的静态成员变量这一课的程序时,在这个地方竟然报错
在这里插入图片描述
我们一般调用无参构造函数时,是这样写:Test t
我们一般调用有参构造函数时,是这样写:Test t(1)
我写成Test t2()的理由是调用的是默认参数。

菜鸟老师:Test t2()声明了一个函数。函数名为 t2,没有参数,返回值是Test类型的。因为没有产生名为 t2 的对象,所以后面使用t2报错
能够以无参形式调用的,都不能加括号,都会被认为是函数声明。无参数对象不能加括号

这个地方是特例,存在二义性,不能加,其它地方如new Test()new Test就都可以。
new Test()new Test是一个意思。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Test bench的模块名括号()中不需要指定变量名,因为它的作用是对设计的行为进行验证,而不是作为本身一个功能模块运行,因此它不需要传递任何实际的数据。通常,Test bench包含在一个测试文件中,引用需要测试的模块,并对其进行测试。 ### 回答2: 在使用test bench时,模块名括号()里不需要写变量名。 在Verilog中,test bench是用于对设计进行功能验证和仿真的一种特殊模块。它主要由2个部分组成:被测试设计的例化模块以及对其输入信号进行生成的代码。 例化模块是被测试的设计模块,其中一些输入或输出信号可能需要在测试期间进行控制或者监视。在test bench中,为了对例化模块进行配置和实例化,只需要将被测试的设计模块的名字放在test bench中,而不需要在括号()中列出具体的变量名。 这是因为test bench主要是用于控制和监视被测试的设计,它的输入信号的源头通常是一些自动生成的信号或者测试向量。因此,在test bench中,不需要指定实际的变量名,只需要确保test bench对被测设计的控制信号进行正确连接即可。 需要注意的是,虽然不需要在括号()中写入具体的变量名,但是在test bench的代码中,仍然需要定义和初始化这些信号,以便正确地生成和控制设计模块所需的输入信号。 总结起来,test bench的模块名括号()里不需要写变量名,因为test bench主要用于控制和监视被测试设计的输入信号,这些输入信号通常是自动生成的或者从测试向量中获取的。 ### 回答3: 在 test bench 中,括号()里一般情况下不需要写变量名。test bench 是一种用于对待测模块进行功能验证的环境,它不同于设计和实现的模块。其主要目的是生成测试向量并将其输入到待测模块中,然后观察输出结果并进行验证。 在 test bench 中,括号()内部可以声明输入和输出端口,但一般不需要使用变量名。输入和输出端口的声明只需要指定其类型和方向,而不需要具体的变量名。 以 Verilog 为例,test bench 模块的声明一般如下: module test_bench(); // 输入端口声明 reg input_1; reg input_2; // 输出端口声明 wire output; // 待测模块实例化 dut dut_inst( .input_1(input_1), .input_2(input_2), .output(output) ); // 生成测试向量 initial begin // ... end // 断言验证输出结果 // ... endmodule 在上述示例中,test bench 模块中括号内没有具体的变量名,只是声明了输入和输出端口的类型和方向。实际的变量名由 test bench 中的声明和例程中使用的变量来决定。 需要注意的是,如果有特殊的需求或设计规范,有时括号内可能会要求具体的变量名。但通常情况下,括号内不需要写变量名,因为 test bench 主要关注的是验证设计模块的功能,而不是具体的变量名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值