【问题标题】:How do you declare a global std::vector 2d array across multiple files? c++如何跨多个文件声明全局 std::vector 2d 数组? C++
【发布时间】:2017-10-05 18:03:30
【问题描述】:

我有一个头文件,其中有一个二维数组 extern 声明,以及一个 cpp 文件,其中有要链接到的数组的实际定义。我想用二维向量替换这个数组,但我的编译器一直告诉我:

            'A': redefinition; multiple initialization

这是我的代码

header.h

            #ifndef HEADERS_H_DECLARED
            #define HEADERS_H_DECLARED

            #include <vector>
            ...
            extern std::vector<std::vector<int>> A(10, std::vector<int>(10));
            ...
            #endif

A.cpp

            #include "headers.h"
            ...
            std::vector<std::vector<int>> A(10, std::vector<int>(10));
            ...

然后在我所有的其他 .cpp 文件中使用这个向量。当它是一个数组时一切正常,我认为它与我在多个文件中声明二维向量的语法有关,但我不知道!

【问题讨论】:

    标签: c++ multidimensional-array vector header extern


    【解决方案1】:

    像这样:

    header.h:

    #ifndef HEADERS_H_DECLARED
    #define HEADERS_H_DECLARED
    
    #include <vector>
    
    extern std::vector<std::vector<int>> A;
    
    #endif
    

    A.cpp:

    #include "header.h"
    
    std::vector<std::vector<int>> A(10, std::vector<int>(10));
    

    确保正确拼写文件名。

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2011-12-27
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多