C++ C++;错误LNK2001问题
我是cpp的新手,但在c#工作了一段时间。我正在尝试运行一个简单的控制台应用程序,但收到此LNK2001错误消息 我有main.cpp,并添加了另一个类Zeus,其中包含文件Zeus.h和Zeus.cpp 以下是main.cpp: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"; }
#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函数进行评论?鼓励这种放置方式吗?啊,好的,太好了。这解决了问题。这会起作用(如果原始错误得到纠正),但它不是必需的。勾选
是静态数据成员,因此不需要对象。最初编写的代码很好。哦!!我没有看到它是静态的!!