「静的メンバと定数」(2018/04/23 (月) 13:38:54) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*静的メンバ static
static指定子を付けて宣言したメンバ変数です。
クラス間変数とも呼びます。
静的メンバ変数はクラスのインスタンスを何個生成しても、必ず一つしか存在しない変数です。
以下のプログラムを書いて試してみましょう。
**Sample.h
#html2(){{
<pre class="brush: cpp;">
#include < iostream >
using namespace std;
class Sample{
public:
static int s_num;
int num;
Sample();
void dispNum();
void addNum();
};
</pre>
}}
**Sample.cpp
#html2(){{
<pre class="brush: cpp;">
#include "Sample.h"
int Sample::s_num=0;
Sample::Sample(){
num=0;
}
void Sample::dispNum(){
cout<< num <<","<<s_num<<endl;
}
void Sample::addNum(){
num++;
s_num++;
}
</pre>
}}
**main.cpp
#html2(){{
<pre class="brush: cpp;">
#include "Sample.h"
int main(){
Sample *s = new Sample();
Sample *s2 = new Sample();
s->addNum();
s->dispNum();
s2->addNum();
s2->dispNum();
return 0;
}
</pre>
}}
*定数 const
const指定子を付けて宣言したメンバ変数です。
constを付けることでその変数の値が書き換えられないようになります。
const int num = 100;
//#include(highlight)
testcounter
合計 &counter(total)
今日 &counter(today)
昨日 &counter(yesterday)
*静的メンバ static
static指定子を付けて宣言したメンバ変数です。
クラス間変数とも呼びます。
静的メンバ変数はクラスのインスタンスを何個生成しても、必ず一つしか存在しない変数です。
以下のプログラムを書いて試してみましょう。
**Sample.h
#html2(){{
<pre class="brush: cpp;">
#include < iostream >
class Sample{
public:
static int s_num;
int num;
Sample();
void dispNum();
void addNum();
};
</pre>
}}
**Sample.cpp
#html2(){{
<pre class="brush: cpp;">
#include "Sample.h"
using namespace std;
int Sample::s_num=0;
Sample::Sample(){
num=0;
}
void Sample::dispNum(){
cout<< num <<","<<s_num<<endl;
}
void Sample::addNum(){
num++;
s_num++;
}
</pre>
}}
**main.cpp
#html2(){{
<pre class="brush: cpp;">
#include "Sample.h"
int main(){
Sample *s = new Sample();
Sample *s2 = new Sample();
s->addNum();
s->dispNum();
s2->addNum();
s2->dispNum();
return 0;
}
</pre>
}}
*定数 const
const指定子を付けて宣言したメンバ変数です。
constを付けることでその変数の値が書き換えられないようになります。
const int num = 100;
//#include(highlight)
testcounter
合計 &counter(total)
今日 &counter(today)
昨日 &counter(yesterday)
表示オプション
横に並べて表示:
変化行の前後のみ表示: