0
一個類的靜態成員變量和類的「主體」中定義的「自由」變量之間的區別是什麼?我的意思是我可以用第二個來代替第一個排出班級的頭部嗎?從標題中刪除靜態成員
// b.h
class B
{
public:
B(int j);
void print();
private:
static int is;
};
//b.cpp
#include <iostream>
int i = 0;
int B::is = 0;
B::B(int j)
{
i = j;
is = j;
}
void B::print(){
std::cout << i << " " << is << " " << std::endl;
}
//main.cpp
int main() {
B b1(1);
b1.print();
B b2(2);
b2.print();
b1.print();
return 0;
}
輸出:
1 1
2 2
2 2
它有b.cpp的文件範圍,誰可以改變它,以及如何? – 2012-03-13 18:13:16
@DmitryKachko:從其他文件中,可以使用全局變量,因爲在你的情況下它有'external'鏈接。在其他文件中,可以簡單地聲明爲'extern int i',然後可以使用(和*修改*)變量。 – Nawaz 2012-03-13 18:15:47
全局變量是不好的,因爲命名空間衝突的原因,當然我可以把它放在一個命名空間,它只是一個簡單的例子,它不是問題的問題。 – 2012-03-13 18:17:59