我有以下代碼。爲什麼類型爲char數組的類成員在成員函數中突然變爲const char數組類型?
#include <exception>
public MyException : public std::exception {
private:
const char* MESSAGE = "ExceptionReport";
protected:
static const int MAX_MESSAGE_LENGTH = 200;
char composedMessage[MyException::MAX_MESSAGE_LENGTH];
public:
virtual const char* what() const throw() {
strcpy(this->composedMessage, this->MESSAGE);
return this->composedMessage,
}
};
我想知道爲什麼這不起作用。按照2013年this->composedMessage
,使用strcpy
時突然爲const
。我見過幾個類似的解決方案來初始化類型char數組的成員。爲什麼這不適合我?我沒有看到什麼?
我需要composedMessage
通過strcat
在MyException
的子類中添加更多信息。但是,如果它現在還沒有工作,那是沒有用的。
一般來說,這個想法是不是從設計的角度來看不錯。 what()不應該修改消息的內部狀態。如果有人在評估'what()'後重新拋出異常,你會怎麼做? – SergeyA