Skip to content

viruskizz/42bangkok-cpp_module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C++ Module

Canonical Form

Base canonical form template

There is template base class with constructor overload

  • Default constructor (void)
  • Argument constructor (std::string name)
  • Copy constructor
  • Assignment constructor

Base.hpp

#ifndef BASE_H
#define BASE_H

#include <iostream>
#include <string>

class Base {

protected:

    std::string	_name;

public:

    Base(void);
    Base(std::string name);
    Base(Base const & src);
    ~Base(void);

    Base & operator=(Base const & rhs);

};

#endif

Base.cpp

#include "Base.hpp"

Base::Base(): _name("") {
    std::cout << "Default constructor overload" << std::endl;
};

Base::Base(std::string name): _name(name){
    std::cout << "Argument constructor overload" << std::endl;
};

Base::Base(Base const & src) {
    std::cout << "Copy constructor overload" << std::endl;
    *this = src;
}

Base & Base::operator=(Base const & rhs) {
    std::cout << "Assignment constructor overload" << std::endl;
    if (this == &rhs)
        return *this;
    this->_name = rhs._name;
    return *this;
}

Base::~Base() {
    std::cout << "~Deconstructor~" << std::endl;
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published