gpt4 book ai didi

c++ - 从C++中的类声明继承

转载 作者:行者123 更新时间:2023-11-30 02:11:46 25 4
gpt4 key购买 nike

当你想从C++中的类继承时,在下面第一行声明std是非法的吗?

#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

最佳答案

两者都是合法的。但是假设这是在一个头文件中,你不应该使用 using 指令版本,因为它将名称放在全局命名空间中,这可能会给你的头文件的用户带来问题。

编辑:刚刚注意到您的类名有误:

#include <stdexcept>
class MyClass : public std::runtime_error {
};

是你需要的。

关于c++ - 从C++中的类声明继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com