C++에서 클래스를 상속하려면 아래 첫 줄에 std를 선언하는 것이 불법입니까?C++의 클래스 선언에서 상속
#ifndef HWEXCEPTION_H
#define HWEXCEPTION_H
#include <stdexcept>
class HWException : public std::run_time_error
{
void testException(int num);
};
#endif
using std::run_time_error
class MyClass : public run_time_error
대 이것은 당신이 상단에 #include를 한 가정한다. 나는 std :: run_time_error를 갖는 컴파일 에러를 얻었지만, 두 번째 방법으로는 보이지 않는다. 왜 그런지 궁금해했다.
error C2039: 'run_time_error' : is not a member of 'std'
'run_time_error' : base class undefined
1>main.cpp
error C2039: 'run_time_error' : is not a member of 'std'
error C2504: 'run_time_error' : base class undefined
+1 '?'를 사용할 수 있습니까? 물론 그렇습니다. 그러나 그것은 합법적 인 질문이며 구두점의 오류로 인해 downvoted되어서는 안됩니다. – andand
@Suma는 "첫 번째 줄에서 std를 선언하는 것은 불법입니다."라고 물어볼 때 질문이 없더라도 충분히 명확한 질문처럼 보입니다. –
첫 번째 버전에서 오류가 발생하는 경우 (이 방법이 더 좋음, Neil의 답변 참조)이 오류는 표시된 코드에 나와 있지 않습니다. 이 문제를 해결할 수 없다면 편집자에게 붙여 넣을 수있는 10 줄짜리 줄을 넣고 (필요한 오류 포함 및 모두, 편집자에게 표시되는 오류를 제외하고는 모두 편집 가능해야 함) 제안하고 새로운 질문을 시도해보십시오. 도움. – sbi