작성배경: OCCF 파일 (.cpp + .hpp) 생성
42서울의 CPP_Module 과제에서는
Orthodox Canonical Class Form (OCCF)을 지켜서 클래스를 작성해야 한다. 매번 클래스를 작성할 때마다 OCCF 를 작성하는 것은 괴로운 일이었다.
아래 스크립트는 클래스 명을 입력하면 OCCF의 틀을 작성해준다.
⭐️ OCCF (Orthodox Canonical Class Form) 란?
- 기본 생성자
- 기본 소멸자
- 복사 생성자
- 할당 연산자 오버로딩
위 4가지가 명시적으로 선언되어있는 형식을 말한다.
./occf.sh [Class Name]


#!/bin/bash
name=$1
if [ -z "$name" ]; then
echo "###############################\n\nMake OCCF (hpp + cpp) Script\n\nUsage: occf [ClassName]\n\n###############################"
exit 1
fi
uppercase_name=$(echo "$name" | tr '[:lower:]' '[:upper:]')
hpp_filename="${name}.hpp"
cpp_filename="${name}.cpp"
# Create the file
touch "$hpp_filename"
touch "$cpp_filename"
# Write the content to the file
cat << EOF > "$hpp_filename"
#ifndef ${uppercase_name}_HPP
#define ${uppercase_name}_HPP
class $name {
public:
$name();
$name(const $name& copy);
$name& operator=(const $name& copy);
~$name();
};
#endif
EOF
echo "File $hpp_filename created successfully."
# Write the content to the file
cat << EOF > "$cpp_filename"
#include "$hpp_filename"
$name::$name() {
}
$name::~$name() {
}
$name::$name(const $name& copy) {
}
$name& $name::operator=(const $name& copy) {
return (*this);
}
EOF
echo "File $cpp_filename created successfully."
echo "alias occf='sh ~/occf.sh'" >> ~/.zshrc
source ~/.zshrc
편리하고 좋은 시스템 같아요~