精华内容
下载资源
问答
  • 这里提供两种初始化子组件的方式 1.设置子组件的ref属性,通过$refs.refAttribute.init来初始化子组件 首先在子组件中设置一个init方法,用来设置绑定的是否可见参数为true以及初始化子组件的form表单内容 methods:...

    在前端Vue开发中,经常遇到过这种需求,点击某条数据来查看详情,详情页又被单独封装成一个组件,在父组件中引入该子组件,当点击按钮触发事件时,传入数据参数,初始化子组件,设置子组件可见。这里提供两种初始化子组件的方式

    1.设置子组件的ref属性,通过$refs.refAttribute.init来初始化子组件

    首先在子组件中设置一个init方法,用来设置绑定的是否可见参数为true以及初始化子组件的form表单内容

     methods: {
          init (vehicleNumber) {
            const vehicle = vehicleNumber && vehicleNumber.length > 0 ? vehicleNumber[0] : ''
            const letter = vehicleNumber && vehicleNumber.length > 1 ? vehicleNumber[1] : ''
            const num = vehicleNumber && vehicleNumber ? vehicleNumber.substring(2) : ''
            this.$nextTick(() => {
              this.form.setFieldsValue({ //表单内容由传来的参数赋值
                selectedAbbreviations: vehicle,
                Letters: letter,
                text: num
              })
            })
            this.visible = true // 组件是否可见
          },
    

    在父组件中引入子组件并设置ref属性

    <selectVehicleDriverNumber ref="selectVehicleDriverNumber" @getVehicle_driverNumber="getVehicleDriverNumber"></selectVehicleDriverNumber>
    <!--@getVehicle_driverNumber是监听子组件修改内容后传出的参数,由父组件接收并调用方法-->
    

    当点击某条记录(数据)后,初始化子组件

     <a-icon slot="suffix" type="edit" style="color: rgba(0,0,0,.45)" @click="openModal"/>
    
     openModal () {
             this.$refs.selectVehicleDriverNumber.init(this.form.getFieldValue('license_plate_number'))
         },
    

    2.使用父子组件间的通信,通过监听某个值的状态来决定是否初始化子组件

    在父组件中引入子组件并传递一个对象,该对象包含了一个Boolean值(默认为false)和另一个对象,Boolean值用来决定是否初始化组件,对象为传递的参数

    <listEdit ref="listEdit" :show="componentsShow" ></listEdit>
    

    当点击某条记录(数据)后,更改对象中的Boolean值同时将参数放入componentsShow对象中

    <a @click="editClick(record)">编辑</a>
    
    editClick (record) {
           this.componentsShow = {
             show: true,
             record: record,
             typeName: 'edit'
           }
         }
    

    子组件接受传来的componentsShow对象参数

    props: {
          // eslint-disable-next-line vue/require-default-prop
          show: {
            type: Object
          }
        }
    

    在子组件中监听父组件传来的对象中的Boolean值,如果为true则调用子组件的init()函数初始化子组件(设置表单的值)

    watch: {
          show (NewValue, OldValue) {
            console.log('new----', NewValue)
            console.log('old----', OldValue)
            if (NewValue.show) {
              this.init(NewValue.record, NewValue.typeName)
            }
          }
        }
    
    展开全文
  • 分类: C++技术总结 2012-02-27 17:11 998人阅读 评论(0) 收藏 举报 ...派生子类会继承基类的所有成员,除了...因此,子类对于从父类继承过来的成员变量,若不想自己写构造函数初始化时,就只能先初始化父类中的

    分类: C++技术总结 998人阅读 评论(0) 收藏 举报
     
    2010-12-21 20:44

    派生子类会继承基类的所有成员,除了构造函数和析构函数。也就是说子类是无法继承父类的构造函数和析构函数的.因此,子类对于从父类继承过来的成员变量,若不想自己写构造函数初始化时,就只能先初始化父类中的成员变量,然后再继承过来。如以下程序中:

          子类Student1中的构造方法只有对新增成员int age和string addr的初始化操作,对于从父类继承过来的成员num,name,sex无初始化语句,但子类又不能继承父类的构造方法,要么就另外再写一个初始化语句,可这样操作就造成了重复性语句, 此时就得通过Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s) {age=a;addr=ad;}先初始化父类成员变量,从而间接初始化子类从父类继承过来的成员变量。

     #include<iostream>

        #include<string>

        using namespace std;

        class Student

        {

        public:

        Student(int n,string nam,char s)

        {

           num=n;

           name=nam;

           sex=s;

           }

           ~Student(){}

           protected:

           int num;

           string name;

           char sex;

           };

           class Student1:public Student

          {

              Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s)

              {

                 age=a;

                 addr=ad;

               }

              void show()

              {

               }

            private:

            int age;

            string addr;  

        };       

        int main()

        {

          Student1 stud1(10010,"Wang",'f',19,"BeiJing Road,Shanghai");

          ......

          ......

        }

        以上是对基类Student及子类Student1的定义。

        请注意派生子类构造函数首行的写法:

        Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s)

        其一般形式为

           派生类构造函数名(总参数列表):基类构造函数名(参数列表)

           {

              派生类中新增数据成员初始化语句;

            }

        冒号前面的部分是派生类构造函数的主干,它的总参数表列中包括基类构造函数所需的参数和对派生类新增的数据成员初始化所需的参数。冒号后面的部分是要调用的基类构造函数及其参数。

        基类构造函数后面括号内的参数表列中只有参数但无参数类型,因为在这里不是定义基类构造函数,而是调用基类构造函数,因此这些参数是实参而不是形参。他们可以是常量、全局变量和派生类构造函数总参数表中的参数。     

        从以上可以看到:在main函数中,建立对象stud1时,有5个参数,其中前3个是用来传递基类构造函数的,后2个用来对派生子类所增加的数据成员初始化。

        上例中也可以将派生类构造函数在类外定义,

        Student1::Student1(int n,string nam,char s,int a,string ad):Student(n,nam,s)

        {

          age=a;

          addr=ad;

        }

        注:在类中对派生子类构造函数作声明时不需要:Student(n,nam,s),只有定义式才用到。

        以上例子中,调用基类构造函数时的实参是从子类构造函数的总参数表中获得的,也可以不从那传递,直接使用常量或全局变量,如:

        Student1(string nam,char s,int a,string ad):Student(10010,nam,s)

        这样父类的n默认初始化为10010,子类直接把n=10010继承过来,因此所以不用写。


    展开全文
  • 时间类CTime包含私有成员数据时(hour)分(minute)秒...CTime类包含若干成员函数(如下所示)。 class CTime {  private:  int hour,minute,second;  public:  CTime();  CTime(int th,int tm,int
    时间类CTime包含私有成员数据时(hour)分(minute)秒(second),均为int类型。CTime类包含若干成员函数(如下所示)。
    class CTime
    {
        private:
            int hour,minute,second;
        public:
            CTime();
            CTime(int th,int tm,int ts);
            void Show();
    };
    日期类CDate由时间类CTime公有派生而来,包含私有成员数据年(year)月(month)日(day),均为int类型。CDate类包含若干成员函数(如下所示)。
    class CDate:public CTime
    {
        private:
            int year,month,day;
        public:
            CDate();
            CDate(int dy,int dm,int dd);
            CDate(int dy,int dm,int dd,int th,int tm,int ts);    // 初始化如下。。。
            CDate(int dy,int dm,int dd,CTime t);    //怎么初始化????
            CDate(CTime t);                          //怎么初始化????
            void Show();
    };

    这样的初始化我清楚:
    CDate (  int  dy,  int  dm,    int   dd)  :  year(dy),  month(dm),  day(dd)  {  }
    CDate (  int  dy , int  dm ,   int   dd,  int   th , int  tm  ,int  ts ) : year(dy) , month (dm) , day(dd) , CTime (th , tm , ts)   { }
    但是。。。。
    CDate (  int dy,   int  dm,      int dd,   CTime t  )  :  year(dy),  month(dm),  day(dd)   .........so what???   {   } 
    CDate (  CTime   t   ) : .......so what????  {  }

    跪求大神们解答。。。。大哭。。。。困扰半天了。。。。网上也找不到相关的例题。。。。抓狂。。。。



    展开全文
  • 自己的理解: 当产生继承关系以后,在子类里面会有一个父类对象...在初始化子类的时候,一定要使父类已经存在了(所以要初始化先初始化父类对象).不然没办法调用父类的构造函数.父类必须在子类初始化之前就已经准备好. ...

    自己的理解:
    当产生继承关系以后,在子类里面会有一个父类对象,在子类的构造器当中如果什么都不写的话,会默认有一个super()去调用父类的默认构造函数,
    在初始化子类的时候,一定要使父类已经存在了(所以要初始化先初始化父类对象).不然没办法调用父类的构造函数.父类必须在子类初始化之前就已经准备好.

    展开全文
  • 然后在初始化子类成员,执行子类的构造代码块,子类的构造方法 子类和父类的执行顺序说明: 父类的静态初始化域, 子类的静态初始化域, 父类的非静态初始化域, 父类的构造函数, 子类的非静态初始化域, 子类的...
  • 主要考虑新增变量/函数/重写函数 1) 父亲指针指向子类对象 Father F=new Son(); F是什么呢,F会认为自己是,父类指针,那么F可以访问的相对地址范围,就是父类大小的范围,此时F无法调用子...
  • 我在子窗口中已经生成了OnInitDialog() 函数了,编译也没问题,就是运行的时候父窗口点击确定就啥也跳不出来了,之前没有加列表控件的时候还能跳出子窗口呢
  • 这里子类没有显示调用父类的构造器,但是父类的构造器还是被调用了,说明Java加载类时会加载无参的父类构造函数。不仅如此,执行父类构造器时,系统会再次上溯执行其父类构造器……以此类推,创建任何Java对象,最先...
  • memset() 函数常用于非常量的内存空间初始化。 本质: 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化。 方式: 将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch ...
  • Qt构造函数初始化问题

    千次阅读 2020-08-10 15:32:06
    QT中用父类构造函数初始化子类的成员变量 Qt ------ 初始化构造函数参数,parent C++ 构造函数和析构函数是否可以继承? 描述 在Qt新建继承Qt类的类后,经常会在构造函数看到parent的参数的初始化。如: ...
  • 有时需要给子窗口的控件初始化状态,但子窗口自己不主动提供BOOL xxxxx::OnInitDialog()函数,下面我演示下如何主动添加函数比如我要给子窗口添加函数,这个子窗口我添加的类是CTipDlg11,那么可以到类视图(左下框选标记...
  • /* * @brief Simple calulate square number. * @param1 Base number * @param2 Exponent number * @retval Number of base^number * @author: icerol */ unsigned long pow(uint base , uint ...
  • 但是如果要实例化子类的对象,则只能传入父类的初始函数对应的参数,否则会出错 主要作用是要求用户在实例化对象的时候提供初始函数里面的相应参数 #pyhton3.6 class Parent ( object ) : def __...
  • MATLABS-Function s函数简单应用

    千次阅读 2019-06-26 21:09:06
    初始化子函数3.输出子函数完整代码(2)在Simulink模型中使用S函数 B站av52613760/p52 什么叫S函数 s函数是系统函数(System Function)的简称,是指采用一种程序设计语言描述的一个功能模块。 用户可以采用MATLAB...
  • 然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 3.其次,初始化父类的普通成员变量和代码块,再执行父类的构造方法;4.最后,初始化子类的普通成员变量和代码块,再执行子类的构造...
  • 文章目录(〇) 前言(一) 编写S函数(二)S函数的应用:  (1)定义S函数      ...②初始化子函数  (2)Simulink模型中使用S函数(三)特别注意*——...
  • 1。awakefromnib:方法  是在GUI对象加载完成之后才能调用的方法 切记 2。可以用refreshList方法更新屏幕上控件;不过在控件过多的时候 用UItableView 更好 ...//初始化父类成员  if(self!=nil)  {
  • 当在测试文件(main函数)里,定义一个子类对象d,d对象的初始化会调用d的构造函数,但d对象的构造函数要想完成初始化必须先初始化父类的,因为子类B继承于A,A类的成员函数都被B继承过去了,所以完成初始化子类对象...
  • 直接举例说明,看下面程序和结果。... //父类构造函数 public HelloA() { System.out.println("HelloA"); } //父类块 {System.out.println("I am A");} //父类静态块 static { System.out.pr
  • Java构造函数初始化过程

    千次阅读 2018-08-02 08:38:40
    子类在创建对象时会执行以下代码: (1)父类静态代码块(java虚拟机加载类时,会执行代码仅一次) ...(4)初始化子类的普通成员变量和代码块,再执行子类构造方法(每次创建新对象都会执行)    ...
  • 1、为什么在实例化子类的对象的时候会调用先调用父类的构造函数? 答:因为子类继承父类之后,获取到了父类的内容(属性/字段),而这些内容在使用之前必须先初始化,所以必须先调用父类的构造函数进行内容的初始化...
  • 关于初始化列表中的初始化顺序以及初始化父类构造函数
  • java类的初始化和构造函数

    千次阅读 2015-07-24 15:44:24
    本人小白一枚,看java类的初始化的时候好晕的说,我觉着书上虽然说的对,但总觉得有些信息没说出来,没说清楚,看了好多文章博客的,现在有些感悟,来小写下总结,也算是为以后再次复习种个好果子。  先摘一下书上...
  • 我们知道,构造方法是用来初始化类对象的。如果在类中没有显式地声明...因此,在创建子类对象时,为了初始化从父类中继承来的成员变量,编译器需要调用其父类的构造函数。如果子类的构造函数没有显示地调用父类的...
  • Java 对象初始化顺序

    2021-02-06 10:01:47
    初始化父类的静态代码—> 初始化子类的静态代码—> 初始化父类的非静态代码—> 初始化父类构造函数—> 初始化子类非静态代码—> 初始化子类构造函数
  • 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员; 2.进入构造函数后在构造函数中执行一般赋值与计算。 使用初始化列表有两个原因:原因1.必须这样做: 《C++ Primer》中提到在以下三种情况下需要使用...
  • ()方法,其中,成员变量的初始化在构造函数里的初始化动作之前。 public class Test { private String s = "1"; public Test() { s = "2"; } public static void main(String[] args) { Test t = ne
  • java 初始化顺序

    2016-12-19 14:09:07
    先初始化父类的静态代码--->初始化子类的静态代码-->初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,099
精华内容 4,439
关键字:

初始化子函数