Create Class Script
This commit is contained in:
94
createClass.sh
Executable file
94
createClass.sh
Executable file
@@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: createClass ClassName"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CLASS_NAME=$1
|
||||
UPPER_NAME=$(echo "$CLASS_NAME" | tr '[:lower:]' '[:upper:]')
|
||||
|
||||
mkdir -p "$CLASS_NAME"
|
||||
|
||||
CPP_FILE="$CLASS_NAME/$CLASS_NAME.cpp"
|
||||
HPP_FILE="$CLASS_NAME/$CLASS_NAME.hpp"
|
||||
|
||||
cat <<EOL > "$CPP_FILE"
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ${CLASS_NAME}.cpp :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: aortigos <aortigos@student.42malaga.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: $(date +"%Y/%m/%d %H:%M:%S") by aortigos #+# #+# */
|
||||
/* Updated: $(date +"%Y/%m/%d %H:%M:%S") by aortigos ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "${CLASS_NAME}.hpp"
|
||||
|
||||
//////////////////
|
||||
// Constructors //
|
||||
//////////////////
|
||||
|
||||
${CLASS_NAME}::${CLASS_NAME}()
|
||||
{
|
||||
// std::cout << "${CLASS_NAME} default constructor called" << std::endl;
|
||||
}
|
||||
|
||||
${CLASS_NAME}::${CLASS_NAME}(const ${CLASS_NAME} &other)
|
||||
{
|
||||
*this = other;
|
||||
// std::cout << "${CLASS_NAME} copy constructor called" << std::endl;
|
||||
}
|
||||
|
||||
${CLASS_NAME}& ${CLASS_NAME}::operator=(const ${CLASS_NAME} &other)
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
// Copy attributes here
|
||||
}
|
||||
// std::cout << "${CLASS_NAME} copy assignment operator called" << std::endl;
|
||||
return (*this);
|
||||
}
|
||||
|
||||
${CLASS_NAME}::~${CLASS_NAME}()
|
||||
{
|
||||
// std::cout << "${CLASS_NAME} destructor called" << std::endl;
|
||||
}
|
||||
EOL
|
||||
|
||||
cat <<EOL > "$HPP_FILE"
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* ${CLASS_NAME}.hpp :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: aortigos <aortigos@student.42malaga.com> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: $(date +"%Y/%m/%d %H:%M:%S") by aortigos #+# #+# */
|
||||
/* Updated: $(date +"%Y/%m/%d %H:%M:%S") by aortigos ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef ${UPPER_NAME}_HPP
|
||||
# define ${UPPER_NAME}_HPP
|
||||
|
||||
# include <iostream>
|
||||
|
||||
class ${CLASS_NAME}
|
||||
{
|
||||
private:
|
||||
|
||||
public:
|
||||
${CLASS_NAME}();
|
||||
${CLASS_NAME}(const ${CLASS_NAME} &other);
|
||||
${CLASS_NAME}& operator=(const ${CLASS_NAME} &other);
|
||||
~${CLASS_NAME}();
|
||||
};
|
||||
|
||||
#endif
|
||||
EOL
|
||||
|
||||
echo "Class ${CLASS_NAME} created successfully."
|
||||
Reference in New Issue
Block a user