我收到此错误:
C ++错误C2040:' e' :'记录器'间接级别与' const std :: exception&'
不同我已经看到,当某些内容被宣布两次时,通常会发生此错误,但我无法看到它有什么问题。请看看我的尝试,因为我正在努力做一个记录器课程。
Main.cpp的
#include "Logger.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
try
{
string("abc").substr(10);
}
catch (const exception &e)
{
Logger e;
}
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
这里有你的双重声明,例外var result = new List<int>();
var number = 500;
do
{
result.Add(number);
number+= 150;
} while (number <= 2000000);
和e
实例。
Logger
答案 1 :(得分:1)
我相信您认为您将e
传递给Logger
构造函数,但实际上您正在创建一个名为e
的新变量。
而不是
catch (const exception &e)
{
Logger e;
}
试
catch (const exception &e)
{
Logger l(e);
}
答案 2 :(得分:0)
catch (const exception &e)
创建名为e
的参数,其类型为const exception &
。然后
Logger e;
在同一范围内声明另一个e
的不同类型。您需要更改其中一个变量名称