Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;静态变量在Visual Studio中生成致命错误LNK1120:1未解析的外部 我是C++新手,我想学习静态关键字的不同用法,我读到其中一个是在类中定义静态变量,并使用范围操作符调用它。我试图使用它,但VisualStudio2012产生了一个链接错误。我的代码是: class Vehicle { public: Vehicle(){}; ~Vehicle(){}; static int temp; }; int _tmain(int argc, _TCHAR* argv[]) { Vehicle::temp=100; std::cout << Vehicle::temp << std::endl; system("Pause"); return 0; } class车辆 { 公众: 车辆{}; ~Vehicle(){}; 静态温度; }; int _tmain(int argc,_TCHAR*argv[] { 车辆:温度=100; std::cout c:\users\avraam\documents\visualstudio 2012\Projects\LearningC++\Debug\LearningC++.exe:致命错误LNK1120:1未解析的外部_C++_Visual Studio 2012_Static Variables - Fatal编程技术网

C++;静态变量在Visual Studio中生成致命错误LNK1120:1未解析的外部 我是C++新手,我想学习静态关键字的不同用法,我读到其中一个是在类中定义静态变量,并使用范围操作符调用它。我试图使用它,但VisualStudio2012产生了一个链接错误。我的代码是: class Vehicle { public: Vehicle(){}; ~Vehicle(){}; static int temp; }; int _tmain(int argc, _TCHAR* argv[]) { Vehicle::temp=100; std::cout << Vehicle::temp << std::endl; system("Pause"); return 0; } class车辆 { 公众: 车辆{}; ~Vehicle(){}; 静态温度; }; int _tmain(int argc,_TCHAR*argv[] { 车辆:温度=100; std::cout c:\users\avraam\documents\visualstudio 2012\Projects\LearningC++\Debug\LearningC++.exe:致命错误LNK1120:1未解析的外部

C++;静态变量在Visual Studio中生成致命错误LNK1120:1未解析的外部 我是C++新手,我想学习静态关键字的不同用法,我读到其中一个是在类中定义静态变量,并使用范围操作符调用它。我试图使用它,但VisualStudio2012产生了一个链接错误。我的代码是: class Vehicle { public: Vehicle(){}; ~Vehicle(){}; static int temp; }; int _tmain(int argc, _TCHAR* argv[]) { Vehicle::temp=100; std::cout << Vehicle::temp << std::endl; system("Pause"); return 0; } class车辆 { 公众: 车辆{}; ~Vehicle(){}; 静态温度; }; int _tmain(int argc,_TCHAR*argv[] { 车辆:温度=100; std::cout c:\users\avraam\documents\visualstudio 2012\Projects\LearningC++\Debug\LearningC++.exe:致命错误LNK1120:1未解析的外部,c++,visual-studio-2012,static-variables,C++,Visual Studio 2012,Static Variables,什么可能导致此问题 Edit1(更清楚地说): 我的问题是如何访问类中声明的静态变量?不使用成员函数也可以吗?您需要定义temp,将其添加到class Vechicle之后: class Vehicle { // Left out class code for brevity void useTemp() { temp = 200 ; } // Adding method inside class the uses temp }; int Vehicle::temp = 0 ; 注意,

什么可能导致此问题

Edit1(更清楚地说):


我的问题是如何访问类中声明的静态变量?不使用成员函数也可以吗?

您需要定义
temp
,将其添加到
class Vechicle
之后:

class Vehicle
{
// Left out class code for brevity
   void useTemp() { temp = 200 ; } // Adding method inside class the uses temp
};

int Vehicle::temp = 0 ;
注意,定义
temp
时不需要
static
关键字。由于它是
static
,因此不需要类的实例来访问变量,因此
main
中的代码是正确的:

Vehicle::temp=100;

std::cout << Vehicle::temp << std::endl;

Vehicle v1 ;
v1.useTemp() ;

std::cout << Vehicle::temp << std::endl;
车辆::温度=100;

std::cout您需要定义类外的
静态成员:

#include <iostream>

class Vehicle
{
  public:
     Vehicle(){};
    ~Vehicle(){};
    static int temp;
};

int Vehicle::temp = 0; 

int _tmain(int argc, TCHAR* argv[])
{
    Vehicle::temp = 100;  //^^access the variable with classname plus ::
    std::cout << Vehicle::temp << std::endl;
    std::cin.get();
    return 0;
}
#包括
等级车辆
{
公众:
车辆{};
~Vehicle(){};
静态温度;
};
内部车辆::温度=0;
int_tmain(int argc,TCHAR*argv[])
{
Vehicle::temp=100;//^^使用classname plus:访问变量:

std::您是否需要定义变量。在类定义之后添加
int Vehicle::temp;
。@AvraamMavridis我添加了一些详细信息,希望能够清楚地说明如何在类内部和外部使用
temp
。@MehdiKaramosly您的意思是什么?我在main内部为它赋值。定义时不提供初始值是可以的现在它看起来好多了,如果你不在外部初始化它,然后错误地使用它,你会得到一个随机值(内存中的值),所以在外部初始化它是明智的。