Vic*_*tor 1 c++ visual-studio-2013
我目前正在学习异常处理,这是我的代码的一部分:
//vector.cpp
#include "vector.h"
Vector::Vector(int s)
{
if (s < 0) throw length_error{};
elem = new double[s];
sz = s;
}
Run Code Online (Sandbox Code Playgroud)
这是我试图通过以下方式测试异常的代码:
try{
Vector v(-27);
}
catch (length_error)
{
cout << "There was a negative size for your vector.\n";
}
catch (bad_alloc)
{
cout << "The memory was not allocated properly.\n";
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行我的应用程序时,我收到以下错误:
error C2440: '<function-style-cast>' : cannot convert from 'initializer-list' to 'std::length_error'
Run Code Online (Sandbox Code Playgroud)
错误在哪里?
编辑:代码是从C++编程语言手册复制的.
根据cppreference.com std::length_error有两个构造函数:
explicit length_error( const std::string& what_arg );
explicit length_error( const char* what_arg );
Run Code Online (Sandbox Code Playgroud)
而您正在尝试使用空参数列表进行构造.您需要将一个字符串传递给构造函数.
| 归档时间: |
|
| 查看次数: |
1107 次 |
| 最近记录: |