paip.c++ static 变量的定义以及使用...
paip.c++ static 变量的定义以及使用...
作者Attilax , EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
c++ static 变量的定义以及使用跟JAVA,C#稍微不一样..
静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。
注:不要试图在头文件中定义(初始化)静态数据成员。在大多数的情况下,这样做会引起重复定义这样的错误。即使加上#ifndef #define #endif或者#pragma once也不行。
类中的静态成员变量的初始化必须在类外实现!!
并且静态变量定义的关键是:
static const int aaa;
再类外初始化的格式是:const 数据类型 【类名】::变量名=数字 例如该程序中:
const int a::aaa=10;
对于静态变量,类内部的那个叫声明,C++要求所有实体在任何翻译单元内必须有且只有一个定义,所以得在外部定义。
作者Attilax , EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
c++ static 变量的定义以及使用跟JAVA,C#稍微不一样..
静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。
注:不要试图在头文件中定义(初始化)静态数据成员。在大多数的情况下,这样做会引起重复定义这样的错误。即使加上#ifndef #define #endif或者#pragma once也不行。
类中的静态成员变量的初始化必须在类外实现!!
并且静态变量定义的关键是:
static const int aaa;
再类外初始化的格式是:const 数据类型 【类名】::变量名=数字 例如该程序中:
const int a::aaa=10;
对于静态变量,类内部的那个叫声明,C++要求所有实体在任何翻译单元内必须有且只有一个定义,所以得在外部定义。