#include <iostream>
using namespace std;
//用static 修饰变量
void GetStatic()
{
int a =10;
static int b=10;
//b只初始化一次
printf("a:%d b:%d\n",a,b);
a++;
b++;
}
//这个函数 只能在这个c中被使用
static void myprint()
{
printf("aaaa");
printf("bbbbb");
}
class Test3
{
private:
int m_a;
int m_b;
//static 修饰的变量或函数 ,属于这个类,不属于具体的对象
static int count;
protected:
public:
Test3(int a,int b)
{
m_a=a;
m_b=b;
count++;
cout<<"构造执行"<<endl;
}
~Test3()
{
cout<<"析构执行"<<endl;
}
static int getCount()
{
return count;
}
};
int Test3::count=0;
void main()
{
Test3 t1(1,2),t2(3,4),t3(5,6);
cout<<Test3::getCount()<<endl;
cout<<t3.getCount()<<endl;
system("pause");
}
#include <iostream>
using namespace std;
class C1
{
public:
int i;
int j;
int k;
protected:
private:
};
class C2
{
public:
int i;
int j;
int k;
static int m;
public:
int getX() const
{
return k;
}
void setK(int val)
{
k=val;
}
protected:
private:
};
void main()
{
printf("c1:%d,c2:%d",sizeof(C1),sizeof(C2));
system("pause");
}
//C++ 类对象中的成员变量和成员函数是分开存储的
//普通成员变量:存储于uix中,与struct 变量有相同的内存布局和字节对其方式
//静态成员变量:存储于全局数据区中
//成员函数:存储于代码段中
//问题来了:很多对象公用一块代码?代码是如何区分具体对象的呢?
//换句话说:int getK() const {return k};代码是如何区分,具体obj1,obj2,obj3 对象的k值?
//c++ 编译器对普通成员函数的内部处理