跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组
折叠
品牌标识

D2Learn Forums

wlly-lzhW

wlly-lzh

@wlly-lzh
关于
帖子
2
主题
1
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • 请教如何自定义异常
    wlly-lzhW wlly-lzh

    @SPeak 那正确的写法是什么样的呢?我现在是直接继承std::runtime_error类,如果我不想继承这运行时错误、逻辑错误两个类,想要直接继承自std::exception呢?


  • 请教如何自定义异常
    wlly-lzhW wlly-lzh

    我是一个会一点C++的菜鸟,我需要在自己的代码里面自定义一个异常类,然后我的代码的写法类似于下面这样:

    #include <exception>
    
    class myException : public std::exception {
    	private:
    		const char * msg;
    	public:
    		myException(const char* message) noexcept : msg(message){}
    		const char * what() const noexcept override{
    			return msg;
    		}
    };
    

    感觉这样写好像不太对,自己看了一下std::exception、std::runtime_error、std::logic_error的代码,发现std::runtime_error和std::logic_error都是用__cow_string这个结构体来存储字符串信息的,代码如下:

    struct __cow_string
      {
        union {
          const char* _M_p;
          char _M_bytes[sizeof(const char*)];
        };
    
        __cow_string();
        __cow_string(const std::string&);
        __cow_string(const char*, size_t);
        __cow_string(const __cow_string&) _GLIBCXX_NOTHROW;
        __cow_string& operator=(const __cow_string&) _GLIBCXX_NOTHROW;
        ~__cow_string();
       __cow_string(__cow_string&&) noexcept;
        __cow_string& operator=(__cow_string&&) noexcept;
    };
    

    貌似只有声明,看不到实现。
    所以到这里来请教一下。

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
d2learn forums Powered by NodeBB
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • Online Tools
  • 用户
  • 群组