C++使用static的错误:无法解析的外部符号、“static”不应在文件范围内定义的成员函数上使用
// 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”不应在文件范围内定义的成员函数上使用相关推荐
- static不应在文件范围内定义的成员函数上使用
转自: http://zhidao.baidu.com/link?url=3cG_RJDfBQnzKzhnKaoL4wTkT_C0JDmdn0MH4eSPDe9clrnR4d1iJkYxWm88Z2Q ...
- 解决 C2449在文件范围内找到 “{“(是否缺少函数头?), C2059 语法错误:“}“, C1075 “{“:未找到匹配令牌问题
问题描述及解决办法 今天用vs2019跑了一下别人的项目,但是运行时发现会出现以下几个错误. C2449在文件范围内找到 "{"(是否缺少函数头?) C2059 语法错误:&quo ...
- 错误LNK2001 无法解析的外部符号 main
错误LNK2001 无法解析的外部符号 main 前言:在拷贝项目源码的时候,生成代码的时候出现无法解析的外部符号 main.记录下问题 一.问题产生的原因 1.一般常见的无法解析的外部符号,都是头文 ...
- VTK 无法解析的外部符号的解决办法
当你VTk所有目录和链接库加入到属性页中后,或许还会遇见一个让人头疼的问题: 这是为什么呢? 大部分新手可能都是在配置完毕后亟不可待地在网上找了一段测试代码就进行测试,并没有考虑测试代码之中的陷阱.然 ...
- opencv出现无法解析的外部符号问题
Point2f 出现未知重写符号.变量不是成员的类等问题 原因:未包含 #include <opencv2/core/core.hpp> using namespace cv: 无法解析的 ...
- opencv 使用cvload加载xml出现错误原因解析及方法
google了一下,发现这几年来,碰到这个问题的人并不少,但却没有一个人愿意深入进去好好分析一下原因的,包括[url:3jrjx97k]http://opencv.willowgarage.com/w ...
- 无法解析的外部符号 “public: static void __cdecl std::_String_base::_Xran(void)“
无法解析的外部符号 "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_bas ...
- error LNK2019: 无法解析的外部符号 六处错误的纠正
错误 18 error LNK2019: 无法解析的外部符号 "public: void __thiscall cv::FeatureDetector::detect(class ...
- Visual Studio 出现“无法解析的外部符号”错误
今天编译igstk中一个helloworld项目,添加了.h文件.编译出现"无法解析的外部符号"错误.根据提示可能是缺少了实现文件,可能是.cxx文件,.lib文件吧.然后在igs ...
最新文章
- xhost: unable to open display linux下安装oracle
- D2 日报 2019年4月17日
- 数据库中的二级索引_普通索引_辅助索引
- linux vg备份还原,Oracle Linux 6.4 误删VG之恢复过程
- pythonwindows文件_python查询windows文件
- 图像空域增强:直方图方法
- 新装Kubuntu 18.04后的一些操作
- STM32智能家居系统设计(门禁、人体感应、GSM远程控制)
- [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
- python是微软开发的吗_Python是如何在微软发展壮大的
- 电子元器件B2B商城系统授信大额支付,精细化B2B平台管理
- 分子动力学基本概念(持续更新)
- [转载]拥抱Jini:从Starter Kit 2.0开始(第一部分)
- 【七】【vlc-android】vlc的decoder控制层传输数据与ffmpeg音频解码模块decoder层进行解码的数据交互流程源码分析
- android 9.0的模拟器,exagear模拟器最新版安卓9.0
- 立创EDA安装ibom插件
- java获得指定时间的时间戳
- PYTHON 牛客刷题记录
- 杰卡德相似系数(Jaccardsimilarity coefficient)
- 视频服务器(8) Kurento[3] unity客户端
热门文章
- Asp.net core MVC paypal支付、回调——app支付
- VBA,如何使用类msgbox的效果,但是让窗口过几秒自动关闭? (未完成)
- 美国FBA海运专线有哪些优势?
- 谭浩强c语言五位数的输入输出问题
- Microsoft Flow | 微信 | LDP 整合开发
- 网络故障和网络诊断工具(2.0)
- B2C、C2C电子商务分析
- 1709 ltsb 内存占用_腾讯游戏学院专家分析:Unity在移动设备的GPU内存机制
- 江南百景图显示服务器错误,江南百景图通讯失败请保持网络畅通并重试
- JUC并发编程系列详解篇十四(自旋锁 VS 适应性自旋锁)