首先,一般的成员函数和成员变量:
此时的数据是在一个对象内的,所有函数公用一个变量
class aa
{
private:
public:
int *a;
int b;
void test();
void fooo();
};
void aa::test()
{
a = new int[2];
a[1] = 1;
a[0] = 0;
b = 1;
}
void foo( int b)
{
b = 2;
}
void aa::fooo()
{
b = 3;
}
int main()
{
//int var = NAN;
//if (var ==NAN)
//{
// cout << "aaa" << endl;
//}
//test3();
aa * test = new aa;
test->test();
foo(test->b);
cout << "foo b= " << test->b << endl;
test->fooo();
cout << test->a[1] << "fooo b= "<< test->b <<endl;
system("pause");
}
结论:成员函数可以改变成员变量,但是要直接用,不能作为函数的参数传入,其他非成员函数不能改变
然后,静态的成员函数和成员变量
静态成员变量是全局的,
正因为静态数据成员不属于类的某一特定对象,而是属于整个类的,所以使用时可用以下格式:
类名::静态数据成员名
参考:
http://www.weixueyuan.net/view/5843.html