前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类的静态成员变量

类的静态成员变量

原创
作者头像
村子里的设计师
发布2023-05-20 23:41:00
1K0
发布2023-05-20 23:41:00
举报
文章被收录于专栏:程序设计a

类的静态成员要在类内声明,类外定义。这样做的原因参照 here

类外定义时又要注意哪些内容呢?

不在头文件中定义静态成员变量

这是“尽量不在头文件中定义变量”(参考)的延伸。

错误的代码示例

class.h

代码语言:javascript
复制
#ifndef __CLASS_H
#define __CLASS_H

class A{
        static int var;
};

int A::var = 1;

#endif

main.cpp

代码语言:javascript
复制
int main() {
        return 0;
}

test1.cpp

代码语言:javascript
复制
#include "class.h"

test2.cpp

代码语言:javascript
复制
#include "class.h"

报错

代码语言:javascript
复制
$ g++ -o main test1.o test2.o main.o
/usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: test2.o:test2.cpp:(.data+0x0): multiple definition of `A::var'; test1.o:test1.cpp:(.data+0x0): first defined here
collect2: error: ld returned 1 exit status

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不在头文件中定义静态成员变量
    • 错误的代码示例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档