분류 전체보기

    [C++] string 클래스와 문자열 입출력 (cin, getlline(), c_str(), atoi())

    C++의 클래스 다양한 문자열 메소드를 제공하는 STL c_strI(), length(), copy(), compare(), begin(), end(), operator + 등 지원 C언어의 char * 문자열과 달리, 문자열 끝에 '\0' 과 같은 null이 들어가 있지 않음 string 객체 생성 방법 // 방법 1 string str1("Hello"); // 방법 2 string str1; str1 = "Hello"; // 방법 3 string str2(str1); string 문자열 입력 받기 (cin vs getline) cin : 공백 문자 만나면 입력 받기 종료 ("Hello World"에서 "Hello" 까지만 입력받음) getline() : 공백 포함 한 줄 모두 입력받음. (에 정의된 ..

    [Git] Git Clone vs Git Pull

    Git Clone local에 아무것도 없는 상태에서 원격 저장소의 데이터를 가져오는 것 Git Pull local에 이미 있고 원격 저장소의 수정 상태를 반영하기 위해 가져오는 것. cf. git clone {url} == git init + git remote add origin {url} + git pull origin master 즉, git 프로젝트를 시작 + url을 원격 저장소로 지정 + 원격 저장소를 현재 로컬 master에 병합

    [CS] 헤더란 (*.h) & 다수의 파일로 관리하기 & <>, "" 차이

    수많은 함수를 만들게 되는데 한 파일에 다 선언하고 정의해 놓으면 가독성도 좋지 못하고 비효울적 따라서 여러 함수들을 각각 다른 cpp 파일들에 기능을 구현해두고 .h 헤더파일에 선언만 해두면 추후 사용히 단순히 #include "~.h" 으로 불러오기만 하면 됨. 헤더 파일 : 클래스 선언부 일종의 메뉴판 같은 역할 클래스의 재사용을 위해 분리해서 저장. 클래스마다 분리하여 저장. main 함수에서 다른 소스파일(*.cpp)에 정의된 함수들 사용하기 헤더 파일(*.h)에 함수 정의부를 선언만 해주면 된다! 헤더 파일에 선언 전 : 함수 사용 불가 ! 헤더 파일에 선언 후 : 함수 사용 가능 ! 와 " *.h" 의 차이 1. VS 컴파일러가 설치된 폴더 경로에 있는 헤더 파일 ..

    [CS] 클래스, 생성자, 소멸자, 멤버함수

    생성자와 소멸자 cf. 생성자와 소멸자 모두 자동으로 호출되는 함수, 모두 return 값이 없고 void도 사용할 수 없다! cf. 포인터를 사용하지 않는다면, for loop 등 한 블록이 끝나는 동시에 자동으로 소멸됨! (소멸자에 따로 정의 안해도) 생성자 ClassEx::ClassEx() 형태 인자를 가질 수 있음 클래스의 객체 생성과 동시에 멤버 변수 초기화 가능. 클래스 이름과 동일한 이름으로 구현되며, return 값 없음 ClassEx::ClassEX(int a, int b) : A(a), B(b) => 이런식으로 인자가 있는 생성자는 A, B 각각을 a, b로 초기화하는 역할을 함 멤버함수와 마찬가지로 public 접근지정자로 지정해야 객체 생성 가능! 소멸자 ClassEx::~Class..

    [CS] 빌드 과정 : 전처리 -> 컴파일 -> 링크 (+디버깅)

    컴파일(compile) : 소스 코드의 문법(명령어들)을 분석해 기계어로 번역, 오브젝트 파일로 만듦 (with. 헤더파일(.h) : 어떤 함수가 있는지, #include, #define 들이 선언된 파일. 함수 정의, 사람이 읽을 수 있는 소스코드 형식) 링킹(linking) : 오브젝트(.o) 파일들을 연결. 즉, 기계어로 바뀐 프로그램 코드에서 사용한 함수들을 연결 (with. 정적(.lib), 동적(.dll) 라이브러리 : 함수에 대한 정의가 구현된 부분) 빌드(build) : 컴파일러가 번역한 것과 그외의 다양한 것들(ex. 라이브러리)을 모아 실행가능한 파일(.exe => bianary)로 만듦 디버깅(debug) : 버그 잡는 것 빌드 : 코드 -> 컴파일(기계어(.o => binary)로 ..