// //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中可以对其定义和初始化,可以看到这里的操作与全新的定义一个变量的操作是一样的:有属性类型,属性名称,属性的初值。。。

转载于:https://www.cnblogs.com/Podevor/archive/2011/06/28/2788092.html

C++ static、const对象声明与定义相关推荐

  1. C++ static、const对象声明与定义 问题来源?

    问题源自书<C++primer>(第四版·特别版). 书401页下面注意中写道: const static 数据成员在类的定义体中初始化时,该数据成员仍必须在类的定义体之外进行定义. 书4 ...

  2. android对象申明,Kotlin中的对象表达式和对象声明的具体使用

    Kotlin的对象表达式与Java中的匿名内部类的主要区别:匿名内部类只能指定一个父类型,但对象表达式可以指定0~N个肤类型. 一.对象表达式 对象表达式的语法格式如下: object [: 0~N个 ...

  3. C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间...

    转 自:http://www.cnblogs.com/rocketfan/archive/2009/10/02/1577361.html 1. 编译单元:一个.cc或.cpp文件作为一个编译单元,生成 ...

  4. 《C++ Primer 第五版》第二章(1-4小节)------基本内置类型,初始化和赋值及声明和定义,指针和引用,const和constexpr

    C++ Primer第二章的内容主要介绍了变量和基础类型,包括C++语言定义的基础内置类型.变量的定义及声明.符合类型如指针及引用的介绍和const及常量表达式constexpr的介绍,本次博客也从这 ...

  5. C++ static、const和static const类型成员变量声明及其初始化

    C++ static.const和static const类型成员变量声明及其初始化 const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. ...

  6. 释放只有声明没有定义的对象,都是耍流氓

    2019独角兽企业重金招聘Python工程师标准>>> defs.h 文件 class CFtBreakInfo; struct struc_file_status {HANDLE ...

  7. typedef,static,const用法

    一.typedef主要功能是定义一个已存在类型的别名,但是和宏并存 宏与typedef区别 1.宏定义只是简单的字符串替换 2.typedef定义的类型是类型的别名,typedef后面是一个整体声明, ...

  8. C/C++头文件与变量的声明和定义

    版权声明:本文为博主转载文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 原文链接:https://blog.csdn.net/mountzf/article/deta ...

  9. C++ static、const和static const 以及它们的初始化

    const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. static表示的是静态的.类的静态成员函数.静态成员变量是和类相关的,而不是和类的 ...

最新文章

  1. CNN网络中的 1 x 1 卷积是什么?
  2. 【转】Java中File常用的方法汇总
  3. flask之flask_socketio
  4. 将构件发布到私有的nexus maven 仓库
  5. python函数装饰器参数 参数_【转】python 装饰器功能以及函数参数使用
  6. 《[深入浅出 C#] (第3版)》 - 学习笔记
  7. GDI+中发生一般性错误的解决办法(转帖)
  8. Polkadot 0.9.2版本正式发布,对平行链启动至关重要
  9. MaxCompute Studio使用心得系列3——可视化分析作业运行
  10. LINQ to SQL的不足
  11. cocos2d-x学习之添加显示文字
  12. Java对Internet为什么这么重要?
  13. 01-【分析】神策系统的拆解与分析
  14. DirectX修复工具的详细使用步骤介绍
  15. tolua unity 报错_unity tolua异常处理
  16. Rust学习:13.1_返回值和错误处理之panic 深入剖析
  17. ZVK13(参考VK13)查销售价格
  18. edx 4G Network Essentials 3 - Nodes with data plane (SGW, PGW) 
  19. ISO 8601规则
  20. 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问

热门文章

  1. Linux下如何简单删除/data的空目录
  2. 关于membership的进一步理解
  3. three approaches to industrial experiences at cambridge
  4. 简单,为什么要复杂和妥协?
  5. 【转】gl_NormalMatrix
  6. UGUI 锚点设置为四方扩充模式然后设置局部坐标为0将出现什么问题
  7. 简单的树形dp NOJ376 小强的Linux
  8. 细节优化提升资源利用率
  9. des解密不完整,前面几位是乱码的解决办法
  10. iOS提交审核:您的 App 正在使用广告标识符 (IDFA)