zoukankan      html  css  js  c++  java
  • C++初始化列表问题

    C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误

    class ClassA{
    private ClassB arrayOfObjectClassB[2];
    public ClassA(int i):arrayObjectOfClassB[0](i),arrayObjectOfClassB[1](i)
    }
    arrayObjectOfClassB[0](i)这儿有问题
     
    初始化列表中,只能初始化 单个变量 或 类的对象,不能初始化数组
    数组作为成员变量时只有默认初始化,也就是无法传递参数。有两种变通方案:你可以把对象数组改成指针数组,或者把ClassB类的构造和初始化分开。
    方案一:
    class ClassA{
    private:
    ClassB* arrayOfObjectClassB[2];
    public:
    ClassA(int i){
    arrayObjectOfClassB[0]=new ClassB(i);
    arrayObjectOfClassB[1]=new ClassB(i);
    }
    };
    方案二:
    class ClassB{
    private:
    int data;
    public:
    ClassB(int d):data(d){ }
    ClassB(){ }
    void Init(int d){data=d;}
    };
    class ClassA{
    private:
    ClassB arrayOfObjectClassB[2];
    public:
    ClassA(int i){
    arrayObjectOfClassB[0].Init(i);
    arrayObjectOfClassB[1].Init(i);
    }
    };
  • 相关阅读:
    Scrapy中间件
    Scrapy简介
    Scrapy解析器xpath
    postman
    yarn
    brew 安装 yarn 时候失败
    immutability-helper 用途+使用方法
    js 正则
    react redux 应用链接
    react 事件传参数
  • 原文地址:https://www.cnblogs.com/lidabo/p/3140983.html
Copyright © 2011-2022 走看看