删除了'的定义;简单向量:简单向量(int)和x27; 我用动态数组在C++中创建一个简单的向量类。必须删除带有int参数的构造函数

删除了'的定义;简单向量:简单向量(int)和x27; 我用动态数组在C++中创建一个简单的向量类。必须删除带有int参数的构造函数,c++,class,constructor,dynamic-arrays,C++,Class,Constructor,Dynamic Arrays,我有两个错误: 从我的cpp文件中删除了simple\u vector::simple\u vector(int)的定义 我的hpp文件中以前的simple\u vector::simple\u vector(int)声明 发生什么事了?我的类的名称是simple\u vector。它只能包含double元素 老实说,我不知道该怎么办 Hpp文件 simple_vector(const int a); Cpp文件 simple_vector::simple_vector(const int

我有两个错误:

  • 从我的cpp文件中删除了
    simple\u vector::simple\u vector(int)
    的定义

  • 我的hpp文件中以前的
    simple\u vector::simple\u vector(int)
    声明

发生什么事了?我的类的名称是
simple\u vector
。它只能包含
double
元素

老实说,我不知道该怎么办

Hpp文件

simple_vector(const int a);
Cpp文件

simple_vector::simple_vector(const int a) = delete;

您不能在
cpp
文件的定义中将构造函数标记为
delete
'd,您需要在
hpp
文件的声明中将其标记

hpp
文件中,更改以下内容:

simple_vector(const int a);
为此:

simple_vector(const int) = delete;
cpp
文件中,完全删除以下内容:

simple_vector::simple_vector(const int a) = delete;

使构造函数显式@RetiredInja如果删除的函数不是显式的,您会收到更好的错误消息(“当尝试隐式转换时,没有可行的函数”变为“使用删除的函数”,这使得您无法从
int
构建的意图更加清楚)除非您计划为每个可能转换的类型编写一个已删除的构造函数,否则如果您不希望隐式转换,那么显式仍然是一个好主意。它不必是一个或另一个事物。作为信息点,C++不支持动态数组。毕竟,如果在另一个翻译单元中隐藏“<代码>删除> /代码>,编译器将如何标记为错误?