-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathErrorMessage.cpp
More file actions
70 lines (57 loc) · 1.53 KB
/
ErrorMessage.cpp
File metadata and controls
70 lines (57 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
ErrorMessage.cpp
Name: Yuansheng Lu
Student ID: 136654167
E-mail: ylu140@myseneca.ca
*/
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include "ErrorMessage.h"
using namespace std;
namespace sict {
ErrorMessage::ErrorMessage() {
message_ = nullptr;
}
ErrorMessage::ErrorMessage(const char* errorMessage) {
message_ = nullptr;
message(errorMessage);
}
ErrorMessage& ErrorMessage::operator=(const char* errorMessage) {
message(errorMessage);
return *this;
}
ErrorMessage::~ErrorMessage() {
delete [] message_;
}
// De-allocates the memory pointed by message_
void ErrorMessage::clear() {
delete [] message_;
message_ = nullptr;
}
// message_ setter
void ErrorMessage::message(const char* value) {
clear(); // deallocate original memory
message_ = new char[strlen(value) + 1];
strcpy(message_, value);
}
// Check whether message_ is nullptr or not
bool ErrorMessage::isClear()const {
bool rv;
if (message_ == nullptr)
rv = true;
else
rv = false;
return rv;
}
// Return message_
const char* ErrorMessage::message()const {
return message_;
}
// Helper operator <<
ostream& operator<<(ostream& ostr, const ErrorMessage& em) {
if (!em.isClear())
ostr << em.message();
return ostr;
}
}