有关类的静态成员初始化
来源:互联网 发布:办公软件office教程 编辑:程序博客网 时间:2024/05/17 00:10
有四个文件:class.h,class.cpp,fun.h,fun.cpp
1.第一种情况
class.h
#include<stdio.h>
class C
{
public:
static int i = 0;
};
class.cpp
#include "class.h"
int main()
{
C c;
return 0;
}
class.h:5: error: ISO C++ forbids in-class initialization of non-const static member `i'
2.第二种情况
class.h
#include<stdio.h>
class C
{
public:
static int i;
};
int C::i(1);或者 int C::i = 1;
class.cpp
#include "class.h"
#include "fun.h"
int main()
{
C c;
return 0;
}
fun.h
int fun();
fun.cpp
#include "class.h"
int fun()
{
C c;
return 0;
}
multiple definition of `C::i
3.第三种情况
class.h
#include<stdio.h>
class C
{
public:
static int i;
};
class.cpp
#include "class.h"
#include "fun.h"
int C::i = 0;
int main()
{
C c;
printf("%d\n",c.i);
fun();
printf("%d\n",c.i);
return 0;
}
fun.h
int fun();
fun.cpp
#include "class.h"
int C::i = 1;
int fun()
{
C c;
printf("%d\n",c.i);
return 0;
}
multiple definition of `C::i'
4.第四种情况
class.h
#include<stdio.h>
class C
{
public:
static int i;
};
class.cpp
#include "class.h"
#include "fun.h"
int C::i = 0;
int main()
{
C c;
printf("%d\n",c.i);
fun();
printf("%d\n",c.i);
return 0;
}
fun.h
int fun();
fun.cpp
#include "class.h"
int fun()
{
C c;
c.i = 1;
printf("%d\n",c.i);
return 0;
}
输出:
0
1
1
- 有关类的静态成员初始化
- 类的静态成员初始化
- 类的静态成员初始化。
- 静态初始化类成员
- C++类中静态成员的初始化
- C++类静态成员的初始化
- C++类静态成员的初始化
- C++类静态成员的初始化
- C++类静态成员的初始化
- C++类中静态成员的初始化
- C++类静态成员的初始化
- C++类静态成员的初始化
- c++类中静态成员的初始化
- C++类静态成员的初始化
- C++ 静态成员的类内初始化
- C++类的静态成员初始化
- 关于类的静态成员初始化
- C++类内静态成员的初始化
- 4gl数字金额转大写汉字金额
- 磁盘配额
- xhost access control disabled, clients can connect from any host
- 程序打包
- C源文件加入VC工程后出现error LNK2001的解决办法
- 有关类的静态成员初始化
- 第九届武汉光博会11月举办 今起开放预报名
- Node JS 静态资源处理程序
- DOM和SAX的区别
- S3C2410 MMU_Init函数简要分析
- boost::property_tree实例用法
- spool命令使用详解
- I/O Multiplexing & Scalable Socket Servers
- 写出你所知道的设计模式和应用场景