C++---类的静态成员与常对象

C++中的类的静态成员与常对象
1.X.h文件

#ifndef X_H_INCLUDED
#define X_H_INCLUDED
class CX
{
    
    
    public:
        static int CXCount;
        CX();
        ~CX();
};
#endif // X_H_INCLUDED

2.CX.cpp(类的实现文件)

#include<iostream>
#include "X.h"
using namespace std;

int CX::CXCount=0;
CX::CX()
{
    
    
    CXCount++;
    cout<<"新建一个CX对象"<<endl;
    cout<<"当前CX对象个数:"<<CXCount<<endl;
};

CX::~CX()
{
    
    
    CXCount--;
    cout<<"释放一个CX对象"<<endl;
    cout<<"当前CX对象个数:"<<CXCount<<endl;
}

3.main.cpp

#include "X.h"
int main()
{
    
    
    CX a,b,c;
    CX*p1=new CX();
    CX*p2=new CX();
    delete p1;
    delete p2;

    return 0;
}

运行结果:

新建一个CX对象
当前CX对象个数:1
新建一个CX对象
当前CX对象个数:2
新建一个CX对象
当前CX对象个数:3
新建一个CX对象
当前CX对象个数:4
新建一个CX对象
当前CX对象个数:5
释放一个CX对象
当前CX对象个数:4
释放一个CX对象
当前CX对象个数:3
释放一个CX对象
当前CX对象个数:2
释放一个CX对象
当前CX对象个数:1
释放一个CX对象
当前CX对象个数:0

注意:静态成员不依附于某个对象!
5.常对象:用const来限制数据成员的变化!

#include<iostream>

using namespace std;

class A
{
    
    
    int m_a;
public:
    A(int a):m_a(a){
    
    }
    void setA(int a){
    
    m_a=a;}
    int getA()const{
    
    return m_a;}
};

int main()
{
    
    
    const A a(100);
    a.setA(20);//注意!此处编译未通过!数据成员一旦赋值便不能再修改!

    return 0;
}

猜你喜欢

转载自blog.csdn.net/timelessx_x/article/details/114412720