C++ recap: constructors, destructors, encapsulation
A series of short recaps of learncpp.
Implementation example of a rudimental string library.
#include <iostream>
#include <cstring>
class myString
{
/* everything is private by default */
private:
char *string;
int length;
public:
// constructor
myString(const char *new_string) {
this->length = strlen(new_string) + 1;
this->string = new char[length];
strncpy(string, new_string, length);
this->string[length -1] = '\0';
}
// destructor: no args, no return
~myString() {
delete this->string;
this->string = NULL;
}
/* encapsulation: making all the member variables
private, and providing public access functions
to work with the class */
// getters
char *getString() { return this->string; }
int getLength() { return this->length; }
};
int main()
{
using namespace std;
myString aString("Not so funny");
cout << " -> " << aString.getString() << endl;
cout << " -> " << aString.getLength() << endl;
return 0;
}