C++静态方法调用静态变量报错:undefined reference to 'namespace::class::field'

发布时间:2016-12-10 20:55:23 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"C++静态方法调用静态变量报错:undefined reference to 'namespace::class::field'",主要涉及到C++静态方法调用静态变量报错:undefined reference to 'namespace::class::field'方面的内容,对于C++静态方法调用静态变量报错:undefined reference to 'namespace::class::field'感兴趣的同学可以参考一下。

        作为一个之前一直习惯写java的coder来说,开始写C++时候会有各种不习惯的问题,本来感觉是个显而易见的东西,编译却发现会报错,今天就说一下在C++类里一个静态方法调用静态变量时出现的错误,开始写的代码如下: 功能很简单,有个静态的test方法,两个静态变量,希望在test里进行调用 头文件:test.h,  namespace test{ class Test{  public:     static void test();     static int testInt;       static const char * testCode; };  } cpp文件:test.cpp namespace test{ class Test{  void Test::test(){ testInt=10; testCode="test"; }  } 恩,完成,感觉这应该没啥问题,但是编译会报错:undefined reference to 'test::Test::testInt'....字面意思是没定义,有点摸不着头脑,这怎么可能有问题呢,后来google了一番才发现,这种情况需要在cpp文件里,对变量进行显示的初始化才可以,注意是在cpp文件里,对test.cpp文件进行如下修改: namespace test{ int Test::testInt=0; const char* Test:: testcode="test"; class Test{  void Test::test(){ testInt=10; }  } 这样之后就可以顺利运行了。

上一篇:史无前例的 HTML5 资源参考指南 (含大量的网站连接)
下一篇:PHP jQuery表单,带验证

相关文章

相关评论