c++静态那些事

2014-11-24 10:57:04 · 作者: · 浏览: 0

[cpp]
#include
#include
#include
using namespace std;

class A
{
public:
A();
static void GetStaticNum(); //静态函数

void GetNum(); //普通函数

void UseStatic(); //普通函数调用静态函数

int j; //普通变量成员
static int i; //静态成员变量
};

int A::i = 0; //静态成员变量初始化

A::A()
{
j=2;
}

void A::GetStaticNum()
{
i++;
cout<<"wyz=========GetStaticNum() i="< }

void A::GetNum()
{
j++;
cout<<"wyz=========GetNum() i="< cout<<"wyz=========GetNum() j="< }

void A::UseStatic()
{
static int k =0; //静态变量
k++;

cout<<"wyz=========UseStatic() k="< GetStaticNum();
}


int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

A aa1;
aa1.GetNum();

A aa2;
aa2.GetNum();

A aaa1;
aaa1.GetStaticNum(); //静态函数调用方法一

A::GetStaticNum(); //静态函数调用方法二

A *aa = new A();
aa->GetNum();
aa->UseStatic();
aa->UseStatic();

delete aa;

return 0;

return a.exec();
}

#include
#include
#include
using namespace std;

class A
{
public:
A();
static void GetStaticNum(); //静态函数

void GetNum(); //普通函数

void UseStatic(); //普通函数调用静态函数

int j; //普通变量成员
static int i; //静态成员变量
};

int A::i = 0; //静态成员变量初始化

A::A()
{
j=2;
}

void A::GetStaticNum()
{
i++;
cout<<"wyz=========GetStaticNum() i="< }

void A::GetNum()
{
j++;
cout<<"wyz=========GetNum() i="< cout<<"wyz=========GetNum() j="< }

void A::UseStatic()
{
static int k =0; //静态变量
k++;

cout<<"wyz=========UseStatic() k="< GetStaticNum();
}


int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

A aa1;
aa1.GetNum();

A aa2;
aa2.GetNum();

A aaa1;
aaa1.GetStaticNum(); //静态函数调用方法一

A::GetStaticNum(); //静态函数调用方法二

A *aa = new A();
aa->GetNum();
aa->UseStatic();
aa->UseStatic();

delete aa;

return 0;

return a.exec();
}

结果:

[cpp]
Starting /root/qtdir/StaticFunc-build-desktop/StaticFunc...
wyz=========GetNum() i=0
wyz=========GetNum() j=3
wyz=========GetNum() i=0
wyz=========GetNum() j=3
wyz=========GetStaticNum() i=1
wyz=========GetStaticNum() i=2
wyz=========GetNum() i=2
wyz=========GetNum() j=3
wyz=========UseStatic() k=1
wyz=========GetStaticNum() i=3
wyz=========UseStatic() k=2
wyz=========GetStaticNum() i=4
/root/qtdir/StaticFunc-build-desktop/StaticFunc exited with code 0

Starting /root/qtdir/StaticFunc-build-desktop/StaticFunc...
wyz=========GetNum() i=0
wyz=========GetNum() j=3
wyz=========GetNum() i=0
wyz=========GetNum() j=3
wyz=========GetStaticNum() i=1
wyz=========GetStaticNum() i=2
wyz=========GetNum() i=2
wyz=========GetNum() j=3
wyz=========UseStatic() k=1
wyz=========GetStaticNum() i=3
wyz=========UseStatic() k=2
wyz=========GetStaticNum() i=4
/root/qtdir/StaticFunc-build-desktop/StaticFunc exited with code 0
作者:wyz365889