TIL (22.05.23)
예외처리 try - thow - catch 구조를 이용해라. int main(){ try { if (x) throw 1; M1 실행문 } catch (int e) { M2 실행문 } M3 실행문 } x == true -> M2 - M3 순 x == false -> M1 -> M3 순으로 실행 인자의 타입과 일치하는 예외만 처리한다. try { int person =0; ... if (persons == 0) throw persons; // int 값을 던지는데 ... } catch(char e) // catch는 char 타입으로 받으니까 안된다! { cout
2022.05.23
TIL (22.05.18)
다형성( polymorphism ) 다형성 : 객체의 타입이 다르면 같은 이름의 함수가 호출되더라도 서로 다른 동작을 하는 것 하나의 코드로 다양한 타입의 객체를 처리하는 기술. 형변환 upcasting : 상향 형변환 implicit하게 일어남. 서브클래스를 수퍼클래스 타입으로 변환 downcasting : 하향 형변환 implicit하게 일어나지 않음 수퍼클래스를 서브클래스 타입으로 변환 Shape *ps = new Rectangle(); 자동적 upcasting 왜 그럴까? 자동적으로 upcasting 이 일어나는 이유? 서브 클래스 객체는 수퍼 클래스 객체를 포함하기 때문. 상향 형변환 Shape *ps = new Rectangle(); 하면 객체 포인터가 Rectangle > Shape로 상향 ..
2022.05.18
TIL (22.05.16)
접근 제어자 private , protected, public public 하면 정보 은닉이라는 객체지향의 의미가 없어지므로, protected 를 씀 protected는 상속받지 않는 다른 클래스에서는 private와 같은 위치에 있다. A 클래스를 상속받은 subA에서는 pubic 함수와 protected 함수는 상속받지만, private는 상속받지 아니함. sub클래스가 상속을 받는 유형에 따라도 외부 함수에서 접근 가능성이 달라짐 예를들어 A함수의 protetced 멤버를 private로 상속하면 싹다 private로 바낌
2022.05.16
TIL 22.05.11
typical pre 참조값을 참조함 ++(int) : 그 객체의 복사본을 내야함 += oprerator typical [] operation 매개변수가 int type 를 받았죠. 변환하는게 아님 ㅇㅇ 고치지 않기 위해 const를 쓴다. os 는 cout을 받고 m1 은 *p를 인자로 둔 애를 받아 + : 문자끼리 더하는게 아니죠! 옆에 붙인다는 뜻 return *this를 리턴함 strcpy (new p, p) : p를 new p 에 복사함 friend 함수로 선언하면 서로 인자 공유 가능해짐 깊은복사 &s != this : b의 주소와 a의 주소가 다르면 s의 사이즈 +1 만큼의 배열을 할당해서 복사해서 집어넣음 변환생성자 클래스 상속 형식 : 클래스 이름 + 접근지장자 + 부모클래스 UML 자식..
2022.05.11
TIL (22.04.28)
문자열 문자열은 String 타입을 사용하므로, String 타입의 변수를 선언해야함. 문자열의 비교 두 문자열을 비교할 때 == 와 != 연산자를 사용하면 안된다. == 와 != 는 두 문자열의 내용을 검사하는 것이 아니라, 동일한 객체인지 검사하는 연산자이기 때문. 그래서 비교하는 메서드가 있다. String 클래스에서 제공하는 문자열 비교 메서드 int compareTo(String s) : 문자열을 사전 순으로 비교해 정수 값을 반환한다. int compareToIgnoreCase(String s) : 대,소문자를 무시하고, 문자열을 사전 순으로 비교한다. boolean equals(String s) : 주어진 문자열 s와 현재 문자열을 비교한 후 true, false를 반환한다. boolean ..
2022.04.29
TIL (22.04.19) 시험범위 4장 정리
4장 객체지향 프로그래밍 클래스 선언과 객체 생성 클래스이름 변수; 이때 클래스 이름은 변수의 타입, 클래스는 참조타입이므로, 참조 변수, 또는 참조 타입 변수라고 한다. new 연산자를 이용해서 객체를 생성하고 반환된 주소를 참조 변수에 집어넣음 package chap04; class Phone { String model; // default 값 : null int value; // default 값 : 0 void print() { System.out.println(value + "만원짜리 " + model + "스마트폰"); } } public class PhoneDemo { public static void main(String[] args) { Phone myPhone = new Phone();..
2022.04.20
TIL (22.04.18)
동적 할당 . int arr = new int[10] new 로 할당 받고 delete[] arr delete[]로 지워진다. 무조건 delete []이다 [] 빼먹으면 지옥감.. 메모리는 byte 기준으로 주소가 매겨진다 포인터는 주소를 저장할 수 잇는 변수이다. 변수 x의 주소를 추출하려면 &x 라고 하면 된다. *p의 의미는 int 형 포인터 이다 int 형 포인터 p가 가리키는 위치에 100을 저장하는 문장은 *p = 100; 이다 포인터가 아무것도 가리키고 있지 않는 경우에는 NULL값을 넣어두는 편이 좋다 . 배열 a 에서 a는 첫번째 원소의 주소이다. p가 포인터라면 p[2]는 수식 *(p+2)와 같다. *p++는 p위치의 값을 추출한 뒤에 1을 더함 // 후술하겠음. int 형 포인터 p가..
2022.04.18
TIL (22.04.17) 시험범위 정리 3장
제어문과 메서드 제어문 종류 조건문 조건식의 결과에 따라 여려 실행 경로 중 하나를 선택, if문, switch문 반복문 조건에 따라 같은 처리를 반복, for문, while문, do ~ while 문 분기문 실행 흐름을 무조건 변경, break문, continue문 조건문 조건에 따라 실행문을 선택할 때 사용 단순 if문 조건식이 true일 때만 실행문을 수행 조건식에는 true, false 를 산출할 수 있는 연신식, 논리값, 변수가 올 수 있음 조건식이 true 일 때 수행할 실행문이 하나라면, {}를 생략가능 다중 if문 조건식이 다양할 때 사용 if문 다음에 else if문을 연속 추가해 각조건을 차례대로 점검한 후 만족하는 실행문을 수행 if (조건식1) { 실행문(들); 조건식 1이 참일 때..
2022.04.17
TIL (22.04.17) 3주차 알고랩 풀이
이 글은 과제 제출 기한이 지났고 사이트 내에서 코드도 열람이 가능해졌기 때문에 풀이를 정리해도 될 것 같아 비공개 글에서 공개글로 전환하였습니다. 필자도 배우는 입장이라 틀린점, 잘못된 점이 있을 수 있습니다. 그러니 지적, 피드백 환영합니다. 주가분석 #include using namespace std; int main() { int T; cin >> T; while(T--) { int t, tmp_old, tmp_mid, tmp_new, input, cnt; cnt = 0; cin >> t; cin >> input; tmp_old = tmp_mid = tmp_new = input; t--; // tmp_old = tmp_mid = tmp_new = 0; while(t--){ // cout bqx >..
2022.04.17