Visual Studio 2012 で委任コンストラクターを使用しようとしています。次のコードは、Xcode 4.6 ではコンパイルされますが、Visual Studio 2012 ではコンパイルされません。
.h ファイル内
class ErrorReportDlg : public QDialog
{
public:
ErrorReportDlg(OwlExceptionPtr ex, QWidget *parent);
ErrorReportDlg(QWidget *parent);
virtual ~ErrorReportDlg();
}
.cpp ファイル内
// FWIW, OwlExceptionPtr is
// typdef boost::shared_ptr<OwlException> OwlExceptionPtr
ErrorReportDlg::ErrorReportDlg(OwlExceptionPtr ex, QWidget *parent)
: QDialog(parent),
_error(ex)
{
// stuff
}
ErrorReportDlg::ErrorReportDlg(QWidget *parent)
: ErrorReportDlg(OwlExceptionPtr(), parent) // <--- error here
{
// do nothing
}
私が得ているエラーは次のとおりです。
エラー C2437: 'ErrorReportDlg': 既に初期化されています
私は何を間違っていますか?ありがとうございました!