#include <iostream>
using namespace std;
class Data
{
private:
int *data;
int x;
public:
Data(){}
Data(int _x):x(_x)
{
data=new int[100];
}
Data(Data &p):x(p.x)
{
data=new int[100];
}
~Data()
{
delete []data;
}
public:
void setdata(int *q);
void getdata();
};
void Data::setdata(int *q)
{
data=q;
}
void Data::getdata()
{
for(int i=0;i<4;i++)
cout<<*(data+i)<<endl;
}
int main()
{
int w[4]={1,2,3,4};
Data a(2);
a.setdata(w);
a.getdata();
Data b;
b=a;
b.getdata();
return 0;
}
#include <iostream>
using namespace std;
class Tank
{
private:
int number;
static int count;
public:
Tank(){}
Tank(int number1=0):number(number1)
{
count++;
}
Tank(Tank &p):number(p.number)
{
count++;
}
~Tank()
{
count--;
}
int getnumber()
{
return number;
}
static void showcount()
{
cout<<"last:"<<count<<endl;
}
};
int Tank::count=0;
int main()
{
Tank a(5);
cout<<a.getnumber()<<endl;
Tank::showcount();
Tank b(a);
cout<<b.getnumber()<<endl;
Tank::showcount();
return 0;
}
- static变量,值变后会保存,而没有static直接int,值变后不会保存,回到原来初始值,这就是static的作用
- 静态(static)注意点:
1.主函数中静态成员函数访问:类名::函数名——所以可以看出静态成员函数不需要对象生成就可以访问
2.静态成员变量一定要初始化,且在类外:int 类名::变量名=0;
3.不提倡用:类名.函数—–因为这样的话和普通成员函数访问方式是一样的,无法看出是static类型。