본문 바로가기

기계공학부 시절의 기록/C++일기20

(진행중)3.1~3.4 연산자 3.1 연산자에는 우선순위(Operator precedence)가 있다. 프로그래머들도 이를 다 외우고 있진 못함. 따라서 괄호 ()를 적극적으로 활용해 우선순위를 먼저 지정을 하는 편이다. 연산의 방향도 왼쪽에서 오른쪽, 오른쪽에서 왼쪽이 있다. =이 대표적인 오른쪽에서 왼쪽방향의 연산자이다. cpp operators wiki : https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B 3.2 산술연산자 단항 연산자는 띄워쓰지 않는다. ex. int x = 1; int y = - x; (x) int y = -x;(o) 컴파일러는 띄워쓰기를 무시하지만 사람이 읽을 때 혼란이 있을 수 있다. 정수 나누기와 실수나누기가 다르다 += *= /= %= 연산자들도 있다.. 2021. 10. 12.
클래스 상속, 생성자 정의 클래스 상속 상속 : 물려주는 것. 자식은 부모에 포함 부모의 멤버는 자식의 멤버에 포함된다. https://www.youtube.com/watch?v=yWI8GTLsBR8 클래스 생성자 정의 초기화 https://www.youtube.com/watch?v=2rXLncQD27c 2021. 10. 5.
상수 : 리터럴상수, 심볼릭상수 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 상수란 프로그램 실행 중에 계산으로 사용할 값정도 생각하면 될 것 같다. 리터럴 상수와 심볼릭 상수가 있는데 리터럴 상수는 데이터를 그대로 쓰는 것이라면 심볼릭 상수는 데이터에 이름을 지어 그 이름으로 상수를 사용하는 것이다. 1. 리터럴 상수 1 2 3 4 5 6 7 8 9 10 11 12 13 #include int main() { // 아래처럼 특정 자료형임을 강조하기 위해서 // 뒷부분에 추가처리를 하는 경우도 있다. float f = 3.14f; unsigned int n = 5u; long n.. 2021. 5. 7.
2.7 문자형 char 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! Casting casting이란 이미 자료형이 선언된 변수를 다른 자료형으로 찍어내는 것을 의미한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include int main() { using namespace std; char c1(65); char c2('A'); cout 2021. 5. 6.
2.6 불리언 자료형 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 불리언 자료형과 and, or 연산자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include int main() { using namespace std; bool b1 = true; // copy initialization bool b2(false); // direct initialization bool b3{ true }; // uniform initializaiton //cout 2021. 5. 5.
2.3 ~ 2.5 고정너비정수, void, double, 절단오차 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 2.3 고정너비 정수 플랫폼, 컴파일러에 따라서 자료형에 할당되는 메모리가 조금씩 다를 수 있다. 하지만 이러한 불확실한 점은 개발자에게 있어서 불안하다. C++11부터는 고정적인 너비를 정하여 이러한 불확실성을 없애는 기능을 넣었다. 아직 쓸일은 잘 없고 이런게 있다~ 정도 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include int main() { //16_t : 16 bits std::int16_t i(5); // integer가 아닌 char .. 2021. 5. 5.
2.2 정수형 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 요지 : 각 자료형에는 가질 수 있는 데이터양의 제한이 있고 그 범위를 넘어서는 데이터를 선언하면 문제가 발생한다. # 각 자료형이 차지하는 메모리크기 파악 (단, char만 정수형이 아니다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include int main() { using namespace std; short s = 1; int i = 1; long l = 1; long long ll = 1; char c = 'c'; cout 2021. 5. 4.
2.1 기본자료형 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 2.1 기본자료형 : 자료형마다 데이터 사용량, 사용방식이 조금씩 다르다. 컴퓨터는 기본적으로 전압이 높고 낮음에 따른 0,1 둘밖에 다루지 못한다 1 bit = 0 or 1 1 byte = 8 bit 가 된다. 예를 들어서 0 은 1bit이고 0100 은 4 bit 01001001은 8 bit = 1 byte가 된다. 아래 그림을 보면 문자와 숫자가 얼마만큼의 메모리를 차지하는지 알 수 있다. 문자는 개수가 많지 않아 1byte만을 사용한다. 하지만 정수는 그 수가 매우 많아 4byte를 사용한다. #.. 2021. 5. 3.
1.12 ~ 1.13 헤더가드가 필요한 이유(LINK ERROR), Namespace 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 1.12 헤더가드가 필요한 이유 앞서 함수의 정의를 cpp파일에, 함수의 선언을 header파일에 쪼개어 정리하는 방법을 배웠다. 그런데 하다보면 바쁜 상황에서 함수안에 함수가 있게되고, main파일에 중복으로 함수를 불러오는 경우가 생긴다. 이 때, 함수가 중복이되면 빌드에러가 발생하는데 이를 방지하기 위한 것이 헤더가드이다. 1.13 Namespace 활용 #에러코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include int dosomething(int a.. 2021. 5. 3.
1.10~ 1.11 함수파일쪼개기, 헤더파일 만들기 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 매우 긴 코드. 매우많은 함수가 있는 상황에서 main함수는 저 뒤에 있어 보이지도 않고 함수들만 보일 때, 함수를 저멀리 뒤로 보내고 main함수를 앞으로 불러오는 대신에 선언과 정의를 구분하여 코드를 정리할 수 있다. 1.10 선언과 정의 분리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include using namespace std; //forward declaration int add(int a, int b).. 2021. 5. 2.
삼항연산자, 보기 좋은 코드 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 삼항연산자 int y = (x > 0) ? 1 : 2; 괄호안이 참이면 ?뒤 왼쪽 수를 y에 대입 1 2 3 4 5 6 7 8 9 10 11 12 13 #include using namespace std; int main() { int x = 2; int y = (x > 0) ? 1 : 2; cout 2021. 5. 2.
1.7 지역범위(Local Scope) 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 첫번째 x, 두번째 x, 세번째 x는 식별자 이름은 같지만 해당 지역({})에서만 존재하고 그 지역을 벗어나면 사라진다. 다른 메모리 공간이기 때문에 이름이 같아도 상관이 없다. 반면에, 새로운 괄호안에서 int x로 새로운 객체정의가 아닌 기존의 객체x에 할당하는 x=을 쓴다면 바깥 영역의 x 메모리에 할당하게 된다. #연습문제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include using namespace std; void doSomething(.. 2021. 5. 2.