为什么我在第31行的代码中有警告

时间:2014-10-23 12:02:59

标签: c++

你可以告诉我应该怎么做吗?我在第31行发出警告 "扩展初始化列表仅适用于-std = c ++ 11或-std = gnu ++ 11 [默认启用]" 为什么?我应该在哪里宣布dzis TAB?

#include <iostream>
using namespace std;

class Zbior_znakow
{
    int indeks;
    static const int MaxEl = 255;
    int licznik;
public:

    char Tablica[MaxEl];

    void zbior_dodaj(unsigned char c);
    int zbior_nalezy(unsigned char c);
    int zbior_licznosc();
    Zbior_znakow();
    int zbior_rozne();
};

void Zbior_znakow::zbior_dodaj(unsigned char c)
{
    indeks = 0;
    Tablica[indeks]=c;
    indeks++;
}

Zbior_znakow::Zbior_znakow()
{
    for(int i=0 ;i<MaxEl;i++)
        Tablica [i]= {'0'};
}

3 个答案:

答案 0 :(得分:3)

Tablica [i]的类型是char not list,因此它的赋值应该是这样的:

Tablica [i]= '0';

答案 1 :(得分:1)

您正在使用初始化列表语法将元素添加到char数组中,您可以更改此

for(int i=0 ;i<MaxEl;i++)
    Tablica [i]= {'0'};

到此

for(int i=0 ;i<MaxEl;i++)
    Tablica [i]= '0';

答案 2 :(得分:1)

不确定为什么会这样,因为看起来您只想将值初始化为0

试试这个:

for(int i=0 ;i<MaxEl;i++)
    Tablica [i]= '0'; //Don't need the { }