OOP344 quiz 1 answer discussed in class

Quiz 1 discussed in class.  Here’s the solution.  However, it’s a little bit different coding style to what I am used to.

Badger::Badger(){
_storage = NULL;
}

//Constructor
Badger::Badger(const char* src){
_storage = 0;
set(c);
}

Badger::Badger(const Badger& src){
_storage = 0;
//deep copy
set(src._storage);
}

//copy constructor
void Badger::set(const char* src){
if(_storage){
delete [] _storage;
_storage = NULL;
}
if(src){
_storage = new char[strlen(c) + 1];
strcpy(_storage, src);
}
}

//Destructor
Badger::~Badger(){
if(_storage){
delete [] _storage;
}
}

//display function
void Badger::print() const{
if(_storage){
std::cout << _storage;
}
}

int Badger::length() const{
if(_storage){
return strlen(_storage);
}
else{
return 0;
}
}

Leave a comment