Giriş
Türkçesi "Statik Üye Değişken". Açıklaması şöyle. static kelimesi storage-class-specifier kabul edilir.
Static Değişkene :: Karakteri İle Erişilir
Örnek
Elimizde şöyle bir kod olsun. data ve data2 yapıları aynı isimli alana sahiptirler. Ancak f() metodunda static alana erişmek için :: kullanılıyor.
Değişkenleri Bitişik Yazmak Mümkün
Örnek
Açıklaması şöyle.
Elimizde şöyle bir kod olsun. Bir kere static yazmak yeterli. s_One ve s_Two değişkenleri static olur.
Örnek
Elimizde şöyle bir kod olsun.
Türkçesi "Statik Üye Değişken". Açıklaması şöyle. static kelimesi storage-class-specifier kabul edilir.
Değişken nesneye değil, sınıfa ait kabul edilir.Static members of a class are not associated with the objects of the class: they are independent objects with static storage duration or regular functions defined in namespace scope, only once in the program.
Static Değişkene :: Karakteri İle Erişilir
Örnek
Elimizde şöyle bir kod olsun. data ve data2 yapıları aynı isimli alana sahiptirler. Ancak f() metodunda static alana erişmek için :: kullanılıyor.
struct data {
static int member;
};
struct data2 {
int member;
};
void f(data2& data) {
data.member = data::member;
}
Değişkenleri Bitişik Yazmak Mümkün
Örnek
Açıklaması şöyle.
At most one storage-class-specifier shall appear in a given decl-specifier-seq [..]The storage-class-specifier applies to the name declared by each init-declarator in the list [..]
class Example {
static int s_One, s_Two;
...
};
DiğerÖrnek
Elimizde şöyle bir kod olsun.
class A {
public:
static int a;
};
int A::a = 0;
class B {
public:
static A a1;
};
A B::a1;
class C {
public:
static A a1;
};
A C::a1;
int main(int argc, const char * argv[]) {
C::a1.a++;
B::a1.a++;
std::cout << B::a1.a << ", " << C::a1.a << std::endl;
return 0;
}
Çıktı olarak şunu alırız. Çünkü A sınıfı hem B hem de C içinde mevcut ve iki defa artırılmakta.2, 2
Hiç yorum yok:
Yorum Gönder