Dollarslice
Dollarslice

Reputation: 10314

array syntax error

what's wrong with this syntax? sorry for the newbie question.

source:

Level::Level()
{

    NintyDegreeDirections[4] =  
    { 
        (float)(2*(Math.PI)), 
        (float)(3*(Math.PI)/2), 
        (float)Math.PI, 
        (float)Math.PI/2 
    }

...rest of class

header:

//all necessary includes

class Level
{
private:

    static const float NintyDegreeDirections[4];

...rest of header

how do I have an array as a class member? I'm converting from C#

Upvotes: 1

Views: 140

Answers (1)

CB Bailey
CB Bailey

Reputation: 793007

If you want to initialize your static class member in the source file, you need to do it outside of any function body. You also need to retain all of the type information in the definition. E.g.

// In level.cpp, at namespace (global) scope:
const float Level::NintyDegreeDirections[4] =  
{ 
    (float)(2*(Math.PI)), 
    (float)(3*(Math.PI)/2), 
    (float)Math.PI, 
    (float)Math.PI/2 
};

(This assumes that you have defined a Math namespace or class with an appropriate member PI. Math isn't native to C++.)

Upvotes: 3

Related Questions