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);
    }
    };
  • 相关阅读:
    图的邻接链表实现(c)
    图的邻接矩阵实现(c)
    好文
    第13章 红黑树
    函数 setjmp, longjmp, sigsetjmp, siglongjmp
    域名解析
    wget www.baidu.com执行流程分析
    信号处理篇
    第11章 散列表
    第10章,基本数据结构(栈,队列)
  • 原文地址:https://www.cnblogs.com/lidabo/p/3140983.html
Copyright © 2011-2022 走看看