C++ OCCF 파일 생성 스크립트

Seunghso·2023년 12월 13일

script

목록 보기
2/3

작성배경: OCCF 파일 (.cpp + .hpp) 생성

42서울의 CPP_Module 과제에서는 Orthodox Canonical Class Form (OCCF) 을 지켜서 클래스를 작성해야 한다. 매번 클래스를 작성할 때마다 OCCF 를 작성하는 것은 괴로운 일이었다.
아래 스크립트는 클래스 명을 입력하면 OCCF의 틀을 작성해준다.

⭐️ OCCF (Orthodox Canonical Class Form) 란?

  • 기본 생성자
  • 기본 소멸자
  • 복사 생성자
  • 할당 연산자 오버로딩
    위 4가지가 명시적으로 선언되어있는 형식을 말한다.

사용 예시

./occf.sh [Class Name]

결과 (.cpp + .hpp 생성)

occf.sh

#!/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."

Alias 설정 (home 디렉토리에 다운 후)

echo "alias occf='sh ~/occf.sh'" >> ~/.zshrc
source ~/.zshrc
profile
Better than yesterday

3개의 댓글

comment-user-thumbnail
2024년 4월 20일

편리하고 좋은 시스템 같아요~

답글 달기