我不明白为什么使用.cpp文件会导致多个定义,而使用.h文件却不会

时间:2019-05-26 21:41:22

标签: c++ visual-c++

我已经解决了问题:解决方案是将.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;
    }

}

0 个答案:

没有答案