CPP-101: Класове и обекти

Член-променливи

Дефинирането на член-променливите на класа е аналогично на дефинирането на променливи. За да стане една променлива член на класа, то тя трябва да бъде дефинирана в тялото на класа.

class Point {
    double x_;
    double y_;
};

Например, променливите x_ и y_, дефинирани в ред 1 и 2, стават член-променливи на класа Point, защото са дефинирани в неговото тяло.

Променливите bl_ и ur_ от следващия фрагмент са член-променливи на класа Rectangle.

class Rectangle {
    Point bl_, ur_;
};

Член-променливите не могат да бъдат инициализирани при тяхното дефиниране.
[note]
Това правило има изключение. Ако член-променливата е статична и константна, то тя може да бъде инициализирана още при нейното дефиниране.
[/note]

Следователно, следният фрагмент съдържа грешка в ред 1:

class Foo {
    int bar_=42;
};

Причината за това е, че при дефинирането на член-променлива не се заделя памет. Заделянето на памет и инициализирането на член-променливите се извършва едва при създаването на обект от дадения клас. Поради това за инициализиране на член-променливите на обектите от даден клас се грижи специализирана член-функция – конструктор – която се вика автоматично при създаването на всеки обект.

Публикувано в CPP-101, ООП с етикети , , . Постоянна връзка.