【发布时间】:2023-03-18 14:00:02
【问题描述】:
我有一些无法编辑的主文件。有一些事情要做,我正在编写适合主文件的类。 v1 对象是我自己的矢量类的一个实例。
在 main 的某个点上,我有这条线。
try {
// trying to get the element at(4)
// should give an error
cout << v1[4] << endl;
} catch (const string & err_msg) {
cout << err_msg << endl;
}
我的 v1 向量的大小是“3”,所以程序崩溃了,因为我要超出索引。在这里接受错误是可以的。但是如何在程序崩溃之前获得 cout 行的异常?而且我不允许编辑该主代码。我需要对我的头文件或类定义做一些事情。谢谢。
【问题讨论】:
-
所以你有一个自己的类,
v1是你的类的一个实例?你能说明你对operator []的定义吗? -
如果
v1是std::vector那么你就卡住了。你必须修改代码。 -
@AndyProwl 我需要重载 [] 吗?我没有为那个操作员做任何特别的事情。我所做的只是自己创建一个 v1 向量。
-
@juanchopanza 我创建了自己的向量类,继承了 STL 向量。这一步没有什么可做的吗?
-
@AndyProwl 好点。我会把代码扔掉。我不知道这是否算作修改:)
标签: c++ class exception exception-handling try-catch