小编Sah*_*pta的帖子

C++未知名称类型

我有一个头文件定义一些参数.我已经将一些参数定义为extern.我的程序适用于其他数据类型,如double和int,除非我尝试添加矢量变量.头文件中的声明是

extern std::vector<double> my_vec;
Run Code Online (Sandbox Code Playgroud)

在我的主文件中,我使用以下代码构建向量:

std::vector<double> my_vec(3,0);
Run Code Online (Sandbox Code Playgroud)

当我尝试使用clear方法清除向量时,编译器会给出一个错误说明未知类型.我甚至不确定如何调试这个.有人可以帮忙吗?

PS我原本试图使用以下方法为此向量分配一些值:

my_vec[0] = 1;
Run Code Online (Sandbox Code Playgroud)

但是编译器说C++需要所有声明的类型说明符.我用Google搜索了这个错误,但我不明白,因为我指定了my_vec的类型.

编辑:示例:

main.cpp
#include "params.h"
#include <vector>

std::vector<double> my_vec(3,0);

my_vec.clear();
// edit: my_vec[0] = 1; this also produces an error

int main(){
    return 0;
}

params.h
#include <vector>

extern std::vector<double> my_vec;
Run Code Online (Sandbox Code Playgroud)

错误信息:

main.cpp:6:1: error: unknown type name 'my_vec'
my_vec.clear();
^
main.cpp:6:7: error: cannot use dot operator on a type
my_vec.clear();
      ^
2 errors generated.
Run Code Online (Sandbox Code Playgroud)

c++ function global-variables statements

1
推荐指数
1
解决办法
133
查看次数

标签 统计

c++ ×1

function ×1

global-variables ×1

statements ×1