我正試圖初始化一個靜態常量非整數。但它需要私有的參數。如果是整體式的,你可以把它放在類體,並允許讓一個變量採取的另一個即價值使用私有成員初始化靜態常量非整型類成員
static const int A=0;
static const int B=A;
但由於其非整數必須類主體以外的被初始化,但因爲成員是私人的,所以他們超出了範圍,在班主體之外。
例如
//HEADER
class Person
{
static const float x;
static const float y;
static const int rad;
static const sf::Color col;
static const sf::Shape shape;
};
//CPP
const float Person::x=0;
const float Person::y=0;
const int Person::rad=16;
const sf::Color Person::col(255,0,0,255);
const sf::Shape shape=sf::Shape::Circle(Person::x,Person::y,Person::rad,Person::col);
人:: X,人:: Y,人::弧度,人::山口超出範圍,因爲它們是私有的。 當我初始化一個靜態常量時,我不希望把它放在每次創建新實例時都會調用的構造函數中。
例如
//HEADER
class Person
{
static const float x;
static const float y;
static const int rad;
static const sf::Color col;
static const sf::Shape shape;
Person();
};
//CPP
const float Person::x=0;
const float Person::y=0;
const int Person::rad=16;
const sf::Color Person::col(255,0,0,255);
Person::Person()
{
const sf::Shape shape=sf::Shape::Circle(x,y,rad,col);
}
以上但似乎工作,我想不使用它由於上述原因。
有沒有解決辦法。沒有讓成員公開。
感謝