Question

class Simple_String { int length; char *c_ptr; public: Simple_String(const char *cstr_ = ""); // Default/custom constructor...

class Simple_String {

int length;

char *c_ptr;

public:

Simple_String(const char *cstr_ = ""); // Default/custom constructor

Simple_String(const Simple_String &original); // Copy constructor

Simple_String & operator= (const Simple_String &rhs); // Assignment operator

~Simple_String(); // Destructor

  /* … */

};

What is the default constructor, copy constructor, assignment operator, and destructor?

0 0
Add a comment Improve this question Transcribed image text
Answer #1
class Simple_String {
    int length;
    char *c_ptr;
public:
    Simple_String(const char *cstr_ = ""); // Default/custom constructor
    Simple_String(const Simple_String &original); // Copy constructor
    Simple_String &operator=(const Simple_String &rhs); // Assignment operator
    ~Simple_String(); // Destructor
    /* … */
};

Simple_String::Simple_String(const char *cstr_) {
    length = strlen(cstr_+1)+1;
    c_ptr = new char[length];
    for (int i = 0; i < length; ++i) {
        c_ptr[i] = cstr_[i];
    }
}

Simple_String::Simple_String(const Simple_String &original) {
    length = original.length;
    c_ptr = new char[length];
    for (int i = 0; i < length; ++i) {
        c_ptr[i] = original.c_ptr[i];
    }
}

Simple_String &Simple_String::operator=(const Simple_String &rhs) {
    length = rhs.length;
    c_ptr = new char[length];
    for (int i = 0; i < length; ++i) {
        c_ptr[i] = rhs.c_ptr[i];
    }
    return *this;
}

Simple_String::~Simple_String() {
    delete[] c_ptr;
}




Add a comment
Know the answer?
Add Answer to:
class Simple_String { int length; char *c_ptr; public: Simple_String(const char *cstr_ = ""); // Default/custom constructor...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Write a MyString class that stores a (null-terminated) char* and a length and implements all of...

    Write a MyString class that stores a (null-terminated) char* and a length and implements all of the member functions below. Default constructor: empty string const char* constructor: initializes data members appropriately Copy constructor: prints "Copy constructor" and endl in addition to making a copy Move constructor: prints "Move constructor" and endl in addition to moving data Copy assignment operator: prints "Copy assignment" and endl in addition to making a copy Move assignment operator: prints "Move assignment" and endl in addition...

  • Finish the class Matrix.h: class Matrix { public: Matrix(); //default constructor ~Matrix(); //destructor Matrix(const Matrix &);...

    Finish the class Matrix.h: class Matrix { public: Matrix(); //default constructor ~Matrix(); //destructor Matrix(const Matrix &); //copy constror Matrix(int row, int col); Matrix operator+(const Matrix &)const; //overload operator“+” Matrix& operator=(const Matrix &); //overload operator“=” Matrix transpose()const; //matrix transposition void display()const; //display the data private: int row; //row int col; //column int** mat; //to save the matrix }; //main.cpp #include <iostream> #include"Matrix.h" using namespace std; int main() { int row, col; cout << "input the row and the col for Matrix...

  • C++ When running my tests for my char constructor the assertion is coming back false and...

    C++ When running my tests for my char constructor the assertion is coming back false and when printing the string garbage is printing that is different everytime but i dont know where it is wrong Requirements: You CANNOT use the C++ standard string or any other libraries for this assignment, except where specified. You must use your ADT string for the later parts of the assignment. using namespace std; is stricly forbiden. As are any global using statements. Name the...

  • C++ Write a MyString class that stores a (null-terminated) char* and a length and implements all...

    C++ Write a MyString class that stores a (null-terminated) char* and a length and implements all of the member functions below. Submit your completed source (.cpp) file. Default constructor: empty string const char* constructor: initializes data members appropriately Copy constructor: prints "Copy constructor" and endl in addition to making a copy Move constructor: prints "Move constructor" and endl in addition to moving data Copy assignment operator: prints "Copy assignment" and endl in addition to making a copy Move assignment operator:...

  • Finish the class Matrix.h: class Matrix { public: Matrix(); //default constructor ~Matrix(); //destructor...

    Finish the class Matrix.h: class Matrix { public: Matrix(); //default constructor ~Matrix(); //destructor Matrix(const Matrix &); //copy constror Matrix(int row, int col); Matrix operator+(const Matrix &)const; //overload operator“+” Matrix& operator=(const Matrix &); //overload operator“=” Matrix transpose()const; //matrix transposition void display()const; //display the data private: int row; //row int col; //column int** mat; //to save the matrix }; //main.cpp #include <iostream> #include"Matrix.h" using namespace std; int main() { int row, col; cout << "input the row and the col for Matrix...

  • choices: supporting function default constructor friend function static member class getter setter attribute assignment operator Identify...

    choices: supporting function default constructor friend function static member class getter setter attribute assignment operator Identify the parts of the following class definition: class Student { string name; const int ID; float gpa; const char gender; public: Student(); Student& operator (const Student&); string getName() const {return name; } friend ostream& operator<<(ostream&, const Student); }; void outputStudent (const Student&); name [Choose Student) [Choose operator Choose) outputStudent Choose operator<< Choose) getNamel) [Choose

  • Please give a answer to both tasks with a screenshot of the running file. Thanks Consider...

    Please give a answer to both tasks with a screenshot of the running file. Thanks Consider that individual nodes in an unsorted linked list have the following definition class Vector public: Vector(int s = 0)( // makes Size //allocates s space, // makes all entries s, kes all entries e Vector (const Vector & rhs) // copy constructor // makes self a deep copy of rhs Vector operator (const Vector & rhs)(// makes self a deep copy of rhs nVector...

  • C++ NEED AS SOON AS POSSIBLE! BigInt class is used for the mathematical operations that involve...

    C++ NEED AS SOON AS POSSIBLE! BigInt class is used for the mathematical operations that involve very big integer calculations that are outside the limit of all available primitive data types. For example, factorial of 100 contains 158 digits in it so we can’t store it in any primitive data type available. We can store as large Integer as we want in it. Your goal is to overload the operators for a generic “BigInt” class. You will need to write...

  • USING C++ Consider class Thing t string secretName unsigned mschiefLevel:; public: ThingO ...) Thing( const Thing &t)(·.) // Assume these three // member functions const Thing &operator-(...

    USING C++ Consider class Thing t string secretName unsigned mschiefLevel:; public: ThingO ...) Thing( const Thing &t)(·.) // Assume these three // member functions const Thing &operator-(.. -ThingO are properly class CatInTheHat Thing thing_1; Thing thing 2; Thing "seuss; /points to an array of suessize Things unsigned suessize; public: There isn't enough info here to write this, so I'm not asking. CatInTheHat( const CatIn TheHat &cat); const CatInTheHat &operator-(const CatInTheHat &cat); CatInTheHat0; 5) Write the CatInTheHat copy constructor. (2 pts...

  • Class BTree { private: int size; Node* root; public: // constructors BTree() : root(nullptr), siz...

    class BTree { private: int size; Node* root; public: // constructors BTree() : root(nullptr), size(0) {} // default constructor BTree(const BTree& other); // copy constructor BTree(BTree&& other); // move constructor BTree& operator=(const BTree& other); BTree& operator=(BTree&& other);    }; Implement the following function BTree& BTree::operator=(BTree&& other) { if (this != &other) { } return *this; } Can you implement the move assigment and the move constructor

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT