-
[C/C++] Non-static Member Function Pointer in Class
C 또는 C++를 사용하다 보면 function pointer를 다루는 경우가 간혹 생긴다. Non-class Function Pointer func1 func2 func3 위 코드는 class 또는 struct를 사용하지 않는 프로그램에서 사용 가능하다. 그러나 class의 member function으로 사용하는 경우는…
-
[C/C++] Parent Class에서 Child Class의 Variable or Function 접근
C++에선 상속의 개념이 존재하는데, parent class의 특성을 상속받아서 사용하는 방식이 제공된다. 이 때 상속을 받은 child class에선 parent class 변수 또는 함수에 접근이 바로 가능한데, 반대로 parent class에서 child class로의 접근을 하기 위해선…
-
[C/C++] 접근 지정자
C++에서 제공하는 접근지정자 (public, protected, private)은 크게 두 가지 종류로 역할이 나뉜다. 우선 각 접근 지정자에 대한 정의는 다음과 같다. public: 조건 없이 어디서든 접근 가능 protected: 상속받을 시 접근 가능 private: 해당…
-
[C/C++] undefined reference to ‘vtable for X’
C++ code를 build하다보면 virtual keyword를 종종 사용하게 되는데, 간혹 다음과 같은 error를 볼 수 있다. 이는 virtual keyword를 사용하고 난 뒤에 상속받은 class에서 해당 function을 구현해주지 않아 발생한 문제다. 아래 예시 코드를 보자.…
-
[Linux] tmux 사용법
tmux 구성 요소 Session: 여러 window로 구성 Window: terminal 화면, session 내에서 탭처럼 사용 가능 Pane: 하나의 window 내에서 분할된 화면 Session 관련 명령어 Command Description tmux new -s [session_name] 새로운 session 생성…
-
[Vim] 문자열 치환
Command Usage Range Expression Example Description 시작 행, 종료 행 1, 10 1~10행 사이에서 치환 . 1,. 1행부터 현재 커서가 위치한 행 까지 $ .,$ 현재 커서 위치부터 마지막 행 까지 % %…
-
[Git] Rebase 사용법
Git에서 rebase는 주로 merge를 진행 할 때 사용되지만, 그 외에도 commit log 수정 또는 삭제에도 사용된다. 우선 Example로 git commit log를 보면 다음과 같다. 만약 특정 commit을 수정 또는 삭제를 위해서 다음과 같은…
-
[Linux] Slurm 사용법
slurm은 cluster server 상에서 작업을 관리하기 위한 프로그램으로, node간 통신을 통해 작업 management가 이루어진다. sinfo sinfo는 노드들의 status를 확인하는 명령어다. 위 경우 각 노드들이 다른 상태들을 가지는 경우인데, 각 state에 대한 설명은 다음과…
-
[Git] Github Access Token 입력 생략하기
Github이 2021년 8월부터 repository 인증 방식을 기존 password에서 token 방식으로 변경을 했다. 따라서 생성한 token을 기록해서 매번 입력하기는 매우 번거로운 일이 되는데 이를 해결하는 방법이 있다. 바로 token을 작업 환경에 저장하는 방식이다. 1.…
-
[Python] Python 및 Pip Package 설치 경로 확인
1. Python 설치 경로 확인 또는 python을 실행시켜서도 확인 가능하다. 2. Python pip package 설치 경로 확인 Python에서 package manager로 사용하는 pip의 package들이 설치되는 경로를 다음과 같이 확인 가능하다. 위 경로에서 /home/shumin/.local/lib/python3.6/site-packages 위치에…