您的位置:首页 > 编程语言 > C语言/C++

C++ static、const对象声明与定义

2011-06-28 12:56 441 查看
//////////////
//fileName:TestClass.h
////////////
#pragma once
class TestClass
{
public:
TestClass();
TestClass(int n);
virtual ~TestClass(void);
protected:
int m_ntestVar;
static int m_nvar;
const static int m_cnsta_var = 0;
public:
int display(void);
};


在TestClass中定义了一个const static属性和static属性

//////////////
//fileName:TestClass.cpp
////////////
#include "StdAfx.h"
#include "TestClass.h"

int TestClass::m_nvar = 0;
//int TestClass::m_cnsta_var = 12;
//TestClass::m_ntestVar

TestClass::TestClass(){
}
TestClass::TestClass(int n)
: m_ntestVar(n)
{

cout << "m_nvar" << TestClass::m_nvar << endl;
cout << "this->m_ntestVar" << this->m_ntestVar << endl;
cout << "m_cnsta_var" << TestClass::m_cnsta_var << endl;

TestClass::m_nvar++;
}

TestClass::~TestClass(void)
{
cout << TestClass::m_nvar << endl;
}


看到上面代码中,const static属性只能在属性声明的时候一并定义并给予初值。而static对象在TestClass中声明的时候不必也不能再声明的时候定义并赋值。在TestClass.cpp中可以对其定义和初始化,可以看到这里的操作与全新的定义一个变量的操作是一样的:有属性类型,属性名称,属性的初值。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: