我已经解决了问题:解决方案是将.cpp文件简单地更改为.h文件。这样做消除了多重定义错误(链接1169)。
我想知道为什么在这种情况下确实可以解决任何问题。据我了解,编译器将.h和.cpp文件完全相同地对待,这只是一个约定。谁能提供见识?顺便说一句,这是使用Visual C ++。
main.cpp:
#include <iostream>
#include <thread>
#include <ctime>
#include "Basics.h"
using namespace Algorithms;
int main()
{
float calculations = 0.0f;
std::cout << calculations << std::endl;
return 0;
}
Basics.cpp
#pragma once
#include <vector>
namespace Algorithms
{
typedef std::vector<std::pair<float, float>> poly;
//positive is clockwise above y axis
float Area(std::vector<std::pair<float, float>> poly)
{
//bit of math, didnt matter if its commented or not
return 0.0f;
}
}