SV 如何申明一个关联数组,数组元素是class
时间: 2024-05-05 19:17:06 浏览: 21
在SV中,可以使用`associative array`和`class`来声明一个关联数组,数组元素是class。下面是一个示例:
```
class my_class;
string name;
int age;
endclass
my_class obj1 = new();
obj1.name = "Tom";
obj1.age = 25;
my_class obj2 = new();
obj2.name = "Jerry";
obj2.age = 30;
my_class obj3 = new();
obj3.name = "Bob";
obj3.age = 35;
// 声明关联数组
my_class my_array[string];
my_array["obj1"] = obj1;
my_array["obj2"] = obj2;
my_array["obj3"] = obj3;
// 访问数组元素
$display("Name: %s, Age: %d", my_array["obj1"].name, my_array["obj1"].age);
$display("Name: %s, Age: %d", my_array["obj2"].name, my_array["obj2"].age);
$display("Name: %s, Age: %d", my_array["obj3"].name, my_array["obj3"].age);
```
在上面的示例中,我们首先定义了一个名为`my_class`的class,其中包含了两个成员变量`name`和`age`。然后我们创建了三个`my_class`类型的对象,并分别对它们的成员变量进行了赋值。
接着,我们使用`my_class my_array[string]`来声明了一个名为`my_array`的关联数组,其中关键字为`string`,表示该数组的索引为字符串类型。
最后,我们通过`my_array["obj1"]`、`my_array["obj2"]`、`my_array["obj3"]`来访问数组中的元素,这些元素都是`my_class`类型的对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)