// static_test.h : 头文件  002 #pragma once  003    004 class static_test  005 {  006 public:  007     static_test();//默认构造函数  008     void set(int x, int y, int z);//成员变量初始化  009     int add();//  010     static int add2();//静态成员函数  011     ~static_test();  012     static int sum;//公有的静态成员变量  013 private:  014     static int sum2;//私有的静态成员变量  015     int a, b, c;  016 };  017    018    019 // static_test.cpp : 定义控制台应用程序的入口点。  020 //  021    022 #include "stdafx.h"  023 #include "static_test.h"  024 #include <iostream>  025 using namespace std;  026    027 /*  028 notice:  029    如果sum,sum2这两个静态成员变量没有在这里定义,就会出现错误:  030    static_test.obj : error LNK2001: 无法解析的外部符号 "private: static int static_test::sum2"   031    static_test.obj : error LNK2001: 无法解析的外部符号 "public: static int static_test::sum"   032 */ 033 int static_test::sum = 0; //  034 int static_test::sum2 = 0; //   035    036 /*  037   全局函数可以调用类的public型的静态成员变量sum,可以改变它的值。  038   但不能用sum2,因为sum2是private类型的。  039 */ 040 int fun_add(int x, int y, int z)  041 {  042     static_test::sum += x+y+z;  043     return static_test::sum;  044 }  045    046 /*  047 成员变量的初始化  048 */ 049 static_test::static_test()  050 {  051     this->a = 0;  052     this->b = 0;  053     this->c = 0;  054 }  055    056 /*  057 给成员变量赋值  058 */ 059 void static_test::set(int x, int y, int z)  060 {  061     a = x;  062     b = y;  063     c = z;  064 }  065    066 /*  067 析构函数  068 */ 069 static_test::~static_test(void)  070 {  071 }  072    073 /*  074 成员函数的实现  075 */ 076 int static_test::add()  077 {  078     return a+b+c;  079 }  080    081 /*  082 静态成员函数的实现  083 注意:静态成员函数只能访问类的静态成员变量。  084 定义时,前面不能加static,否则出现error C2724: “static_test::add2”: “static”不应在文件范围内定义的成员函数上使用错误:  085 */ 086 int static_test::add2()  087 {  088     return sum2;  089 }  090    091 int _tmain(int argc, _TCHAR* argv[])  092 {  093     int result = 0;  //保存结果  094     static_test test;//创建一个对象  095     test.set(1, 2, 3);  096     result = test.add();  097     cout<<result<<endl;//result = 6  098     result = fun_add(4, 5, 6);  099     cout<<result<<endl;//result = 15  100     result = fun_add(1, 2, 3);  101     cout<<result<<endl;//result = 21    因为sum为静态成员变量,该变量的值可以保存给下一次调用,而不会冲掉,直到程序结束为止。  102     return 0;  103 } 

C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用相关推荐

  1. static不应在文件范围内定义的成员函数上使用

    转自: http://zhidao.baidu.com/link?url=3cG_RJDfBQnzKzhnKaoL4wTkT_C0JDmdn0MH4eSPDe9clrnR4d1iJkYxWm88Z2Q ...

  2. 解决 C2449在文件范围内找到 “{“(是否缺少函数头?), C2059 语法错误:“}“, C1075 “{“:未找到匹配令牌问题

    问题描述及解决办法 今天用vs2019跑了一下别人的项目,但是运行时发现会出现以下几个错误. C2449在文件范围内找到 "{"(是否缺少函数头?) C2059 语法错误:&quo ...

  3. 错误LNK2001 无法解析的外部符号 main

    错误LNK2001 无法解析的外部符号 main 前言:在拷贝项目源码的时候,生成代码的时候出现无法解析的外部符号 main.记录下问题 一.问题产生的原因 1.一般常见的无法解析的外部符号,都是头文 ...

  4. VTK 无法解析的外部符号的解决办法

    当你VTk所有目录和链接库加入到属性页中后,或许还会遇见一个让人头疼的问题: 这是为什么呢? 大部分新手可能都是在配置完毕后亟不可待地在网上找了一段测试代码就进行测试,并没有考虑测试代码之中的陷阱.然 ...

  5. opencv出现无法解析的外部符号问题

    Point2f 出现未知重写符号.变量不是成员的类等问题 原因:未包含 #include <opencv2/core/core.hpp> using namespace cv: 无法解析的 ...

  6. opencv 使用cvload加载xml出现错误原因解析及方法

    google了一下,发现这几年来,碰到这个问题的人并不少,但却没有一个人愿意深入进去好好分析一下原因的,包括[url:3jrjx97k]http://opencv.willowgarage.com/w ...

  7. 无法解析的外部符号 “public: static void __cdecl std::_String_base::_Xran(void)“

    无法解析的外部符号 "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_bas ...

  8. error LNK2019: 无法解析的外部符号 六处错误的纠正

    错误    18    error LNK2019: 无法解析的外部符号 "public: void __thiscall cv::FeatureDetector::detect(class ...

  9. Visual Studio 出现“无法解析的外部符号”错误

    今天编译igstk中一个helloworld项目,添加了.h文件.编译出现"无法解析的外部符号"错误.根据提示可能是缺少了实现文件,可能是.cxx文件,.lib文件吧.然后在igs ...

最新文章

  1. xhost: unable to open display linux下安装oracle
  2. D2 日报 2019年4月17日
  3. 数据库中的二级索引_普通索引_辅助索引
  4. linux vg备份还原,Oracle Linux 6.4 误删VG之恢复过程
  5. pythonwindows文件_python查询windows文件
  6. 图像空域增强:直方图方法
  7. 新装Kubuntu 18.04后的一些操作
  8. STM32智能家居系统设计(门禁、人体感应、GSM远程控制)
  9. [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
  10. python是微软开发的吗_Python是如何在微软发展壮大的
  11. 电子元器件B2B商城系统授信大额支付,精细化B2B平台管理
  12. 分子动力学基本概念(持续更新)
  13. [转载]拥抱Jini:从Starter Kit 2.0开始(第一部分)
  14. 【七】【vlc-android】vlc的decoder控制层传输数据与ffmpeg音频解码模块decoder层进行解码的数据交互流程源码分析
  15. android 9.0的模拟器,exagear模拟器最新版安卓9.0
  16. 立创EDA安装ibom插件
  17. java获得指定时间的时间戳
  18. PYTHON 牛客刷题记录
  19. 杰卡德相似系数(Jaccardsimilarity coefficient)
  20. 视频服务器(8) Kurento[3] unity客户端

热门文章

  1. Asp.net core MVC paypal支付、回调——app支付
  2. VBA,如何使用类msgbox的效果,但是让窗口过几秒自动关闭? (未完成)
  3. 美国FBA海运专线有哪些优势?
  4. 谭浩强c语言五位数的输入输出问题
  5. Microsoft Flow | 微信 | LDP 整合开发
  6. 网络故障和网络诊断工具(2.0)
  7. B2C、C2C电子商务分析
  8. 1709 ltsb 内存占用_腾讯游戏学院专家分析:Unity在移动设备的GPU内存机制
  9. 江南百景图显示服务器错误,江南百景图通讯失败请保持网络畅通并重试
  10. JUC并发编程系列详解篇十四(自旋锁 VS 适应性自旋锁)