Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.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++ C++;错误LNK2001问题_C++ - Fatal编程技术网

C++ C++;错误LNK2001问题

C++ C++;错误LNK2001问题,c++,C++,我是cpp的新手,但在c#工作了一段时间。我正在尝试运行一个简单的控制台应用程序,但收到此LNK2001错误消息 我有main.cpp,并添加了另一个类Zeus,其中包含文件Zeus.h和Zeus.cpp 以下是main.cpp: #include "Zeus.h" #include <iostream> int main() { Zeus::tick = 25.0; using std::cout; cout << "nothing"; }

我是cpp的新手,但在c#工作了一段时间。我正在尝试运行一个简单的控制台应用程序,但收到此LNK2001错误消息

我有main.cpp,并添加了另一个类Zeus,其中包含文件Zeus.h和Zeus.cpp

以下是main.cpp:

#include "Zeus.h"
#include <iostream>

int main()
{
    Zeus::tick = 25.0;
    using std::cout;
    cout << "nothing";
}
这是Zeus.cpp:

void Zeus::testing(void)
{
 //Doesnt get this far
 //But eventually something like
 // cout << "test " << Zeus::tick;

}
double Zeus::tick;
void宙斯::测试(void)
{
//走不了这么远
//但最终还是有点像

//cout您需要定义
Zeus::tick
,通常您需要在
Zeus.cpp
文件中定义它。您只声明了它

double Zeus::tick = 0.0;

也没有C++中的<代码>静态类< /代码>

作为一个旁白,自由函数可以放在命名空间中,而不是类的静态函数。这是C++中的首选方法,除非函数有静态的强大原因。

namespace Dionysus {
  void testing();
}

正如错误消息所说:Zeus::tick没有定义。请将此添加到Zeus.cpp:

void Zeus::testing(void)
{
 //Doesnt get this far
 //But eventually something like
 // cout << "test " << Zeus::tick;

}
double Zeus::tick;
哦,在宙斯.h中,从

static class Zeus
在您拥有的
main()
函数中,语句
Zeus::tick=25.0;
是什么意思?
Zeus
是一个类。所以要访问它的各个元素,你需要创建它的实例。它就像一个结构,你首先创建它的实例来访问它的各个元素

请尝试以下操作:

intmain(){
宙斯肌体;
myobject.tick=25.0;
/*定义的其余部分*/
}  

好吧,你似乎没有定义“勾号”,至少在你展示的代码中没有。任何人都可以使用std::cout
语句对mid函数
进行评论?鼓励这种放置方式吗?啊,好的,太好了。这解决了问题。这会起作用(如果原始错误得到纠正),但它不是必需的。
勾选
是静态数据成员,因此不需要对象。最初编写的代码很好。哦!!我没有看到它是静态的!!