2016-05-01 12 views
0

zu setzen Ich versuche, Standardwerte für eine bool 2d-Array namens "display [Width] [Höhe]" auf false setzen. Ich erhalte den Fehler "IntelliSense: geschweifte Klammern können für diesen Subobjekt-Initialisierer nicht weggelassen werden". Das Problem ist, dass ich diesen Code vorher benutzt habe und es funktioniert, aber nicht mehr. Ich habe diese beiden Implementierung und Header-Dateien:Ich kann nicht scheinen, Standard-Wert für multidimensionales Array in C++

Matrix.cpp (i haben gezeigt, wo ich den Fehler)

#include "Matrix.h" 

Matrix::Matrix(): 
display{ false }  // error is in this line 
{ 

} 

Matrix.h

#pragma once 
#include "SDL.h" 
#include "SDL_image.h" 
#include "SDL_ttf.h" 
#include <iostream> 

class Matrix{ 
public: 
    Matrix(); 
    enum { Width = 10, Height = 20 }; 
private: 
    bool display[Width][Height]; 

}; 
+1

Es funktioniert gut mit Gcc und Clang. –

+1

Haben Sie versucht, leere Zahnspange? d.h. Anzeige {}? –

+0

Ich versuchte Display {} und es hat funktioniert! vielen Dank :) – soso

Antwort

0

Der Code auf Linux gcc funktioniert, aber nicht auf Visual Studio. Der richtige Weg ist, das Falsche innerhalb der Klammern auszustrahlen; so Anzeige {}