当前位置: 首页 > news >正文

办公用品网站建设市场定位查排名的软件有哪些

办公用品网站建设市场定位,查排名的软件有哪些,帮别人设计网站的网站吗,黄冈公司网站推广软件首选一、概述 在 SystemVerilog 中,new 是一个构造函数,用于创建类的实例(即对象)。它在面向对象编程(OOP)中起着重要作用,负责实例化一个对象并进行初始化。与传统编程语言(如 C 或 Jav…

一、概述

        在 SystemVerilog 中,new 是一个构造函数,用于创建类的实例(即对象)。它在面向对象编程(OOP)中起着重要作用,负责实例化一个对象并进行初始化。与传统编程语言(如 C++ 或 Java)中的构造函数类似,new 用来初始化对象的成员变量或执行必要的准备工作。

        SystemVerilog 类的 new 构造函数通常用于创建一个类的对象实例。它有以下特点:

  • 语法:class_name new();class_name new(input_args);

  • 作用:在创建类的对象时,new 方法用来执行对象的初始化操作。

  • 初始化:new 可以在类实例化时对类的成员变量进行初始化。

二、基本结构

        构造函数与普通的方法不同,它通常没有返回值(并且不需要显式地写出 return)。new 作为一个方法,通常会接受一些参数来初始化类的成员变量。

class MyClass;// 成员变量int a;string name;// 构造函数function new(int a_value, string name_value);a = a_value;name = name_value;endfunction
endclass

三、使用

        在 SystemVerilog 中,类的实例化(即对象创建)并不会自动调用 new 构造函数;需要显式地调用 new 来创建对象并初始化它们。

3.1 对象的显式创建

        类的对象(即类的实例)需要显式调用 new 构造函数进行初始化。这和许多面向对象编程语言(如 C++、Java)相似。

class MyClass;int a;string name;function new(int a_value, string name_value);a = a_value;name = name_value;endfunction
endclassMyClass obj;  // 声明对象
obj = new(10, "Test");  // 显式调用构造函数

3.1.1 为什么需要显式调用 new

        SystemVerilog 的类是动态分配的,它们并不像传统的C语言或者 Verilog 中的 structmodule 那样具有静态大小。因此,为了确保类的对象正确地创建和初始化,必须显式调用 new 来分配内存,并进行初始化。

3.1.2 new 的作用

  1. 内存分配new 构造函数会为类的对象分配内存空间。这是因为类的对象是动态创建的,并不直接存储在栈上,而是存储在堆中。

  2. 初始化成员变量new 方法通常用于初始化类的成员变量。你可以在 new 构造函数中设置初始值,确保对象创建时处于有效的状态。

  3. 继承时的构造函数调用:如果类是从其他类继承而来,子类的 new 方法通常会显式调用父类的 new 方法,以确保父类成员得到正确初始化。

3.2 自动调用的情况

3.2.1 默认构造函数

        如果类没有显式定义 new 构造函数,那么 SystemVerilog 会自动提供一个默认构造函数,这个默认构造函数会将类的所有成员变量初始化为默认值(如数字类型初始化为 0,字符串类型初始化为空字符串等)。但即便如此,您仍然需要显式地实例化类的对象。

        例如,如果没有显式定义 new,SystemVerilog 会自动创建一个默认构造函数:

class MyClass;int a;    // 默认为 0string name;  // 默认为 ""
endclassMyClass obj;  // 使用默认构造函数

        在这种情况下,obj 会被创建,并且其成员 a 会被初始化为 0name 会被初始化为空字符串 ""

3.2.2 动态创建对象

        对象的动态创建是通过显式调用 new 来完成的。SystemVerilog 允许通过 new 来动态分配内存并初始化对象。没有 new 的话,类的对象会是一个句柄(或者空指针 null),并且无法使用。

MyClass obj;  // 仅声明对象,但未创建
obj = new();  // 通过 new 创建对象

3.3 继承与 new

class ParentClass;int a;function new(int a_value);a = a_value;endfunction
endclassclass ChildClass extends ParentClass;string name;function new(int a_value, string name_value);super.new(a_value);  // 显式调用父类的构造函数name = name_value;endfunction
endclass// 实例化时显式调用 new
ChildClass obj = new(10, "ChildTest");

        在这个例子中,ChildClassnew 构造函数会显式调用父类 ParentClassnew 构造函数,并在初始化过程中设置 name 成员。

四、总结

        在 SystemVerilog 中,new 是类的构造函数,用于显式创建对象并初始化其成员变量。对象的创建必须通过调用 new(),并且可以使用带参数的 new 来传递初始化值。new() 会在堆上分配内存并执行初始化操作,确保对象的成员变量得到正确的初始值。尽管类可以定义多个构造函数,new 方法的调用总是与对象的动态内存分配紧密相关,且在实例化时自动触发。

http://www.yidumall.com/news/47360.html

相关文章:

  • 国外素材网站推荐信息流推广方式
  • javaweb网站开发书籍江门seo网站推广
  • 个人网页设计风格分析关键词排名优化
  • 做啪啪网站今天最新消息
  • 如何让自己的网站被百度收录semir
  • 网站开发发展趋势2018杭州seo网站建设靠谱
  • 做ppt图片用的网站有哪些问题百度代运营
  • 湖南大型网站建设公司排名国外seo网站
  • 深圳做app网站的公司名称宣传软文案例
  • 5网站建站面点培训学校哪里有
  • 如何做内容收费的网站投放广告怎么投放
  • 网站办理公安备案线下营销推广方式有哪些
  • 赣州建设网站seo如何建立优化网站
  • 在货源网站自己拿样 加盟 做代理 哪个比较好?百度联盟注册
  • 夜夜做新郎网站在线视频网络营销怎么做?
  • 响应式网站源码网站建设的整体流程有哪些
  • 做视频网站利润如何处理百度推广开户费用
  • 西乡做网站山东移动网站建设
  • 网站域名管理中心自己可以做网站吗
  • wordpress评论调用标签网站推广和精准seo
  • 佛山网站制作哪里好作品推广
  • 做特卖的购物网站免费b站推广网站
  • 在哪个网站做旅游攻略好有没有专门帮人推广的公司
  • 揭阳模板网站建站网页优化公司
  • wordpress 音乐站怎么样做网站推广
  • 南宁做网站优化百度seo排名优化提高流量
  • 做百度推广网站被攻击哈尔滨最新信息
  • 芜湖网站设计小红书推广费用一般多少
  • 旅游最新政策seo教程视频论坛
  • 微信公众号做微网站吗上海网站关键词排名