1. 일반적인 값& 참조타입 변환2. 업캐스팅 & 다운캐스팅 3. 암시적 변환 & 명시적 변환 4. 아무 관계없는 클래스 사이의 변환5. 상속관계의 클래스 타입 변환 일반적인 값& 참조타입 변환값 타입 변환원본 객체와 다른 비트열 재구성int a = 1234567;float b = (float)a; // 비트열 재구성 -> 값의 오류가 생길 수 있음 참조 타입 변환비트열 재구성 x , 관점만 변환int a = 1234567;float b = (float&)a; // a의 주소값을 float으로 이해하겠다라는 의미 (값의 변형이 존재)// float b = *(float*)&a; // 동일한 표현 업캐스팅 & 다운캐스팅업캐스팅작은 것 -> 큰 것으로 변경더 많은 범위를 표현할 수 있는 타입으로..
1. malloc / free 2. new / delete 3. new [] / delete[] 4. malloc과 new의 차이 Malloc / Free[MALLOC][반환타입]* [포인터이름] = malloc([사이즈])ex) void* pointer = malloc(sizeof([Class]))[Free]free([포인터이름])ex) free(pointer);특징사이즈 지정 가능생성자와 소멸자 호출 xvoid* 포인터형을 사용할경우 class국한되지 않고 캐스팅을 통해 사용할 수 있다.주의HeapOverFlow 주의사이즈를 지정해줘서 사용하므로, 해당 사이즈를 넘어가는 주소공간에 접근할 위험이 존재 (힙오버플로우)Double Free이미 해제된 p..
static Static생존시기 프로그램 시작 ~ 종료까지해당 데이터를 그대로 유지접근 방법클래스 내부에서 static을 사용했을 시, 클래스 이름을 통해 호출 가능멤버함수 , 멤버 변수에 적용 가능일반 함수에 static을 사용했을 시, 해당 함수 범위내에서 접근 가능전역으로 사용했을 시, 해당 파일 내에서 접근 가능사용이유메모리에 유지해야하는 값이 존재해야할 경우 사용클래스에서 모든 객체에 동일하게 사용되어야할경우 사용static 사용 종류함수 내 정적 변수클래스 내 정적 변수클래스 내 정적 함수정적 전역 변수 및 함수 class StaticTest{public: //정적 멤버 함수 void static Print() { cout
1. 연산자 오버로딩 형태2. 대입 연산자 3. 전위/후위 연산자 연산자 오버로딩 형태[반환값]operator[연산자]([인자])ex) int operator+(const int& number)> int b = (int)a + 2;전역 연산자든 멤버함수 연산자 오버로딩이든 사용자 정의 연산자 정의이기에 클래스를 통해서 이뤄짐int operator(int a, int b) {} // 컴파일러 오류기본 타입에 대한 전역 연산자 오버로딩의 경우 표준 라이브러리 호환성 유지를 위해 오류를 내보냄전역 연산자 오버로딩[반환값]operator[연산자]([인자1], [인자2])인자1 : 왼쪽 피연산자인자2 : 오른쪽 피연산자ex) 반환값 = a(왼쪽 피연산자) + b (오른쪽 피연산자)..
클래스 초기화 클래스 초기화클래스 단일class Knight{public: Knight() { _hp = 100; }...public: int _hp;} 클래스 상속class Player{public Player(int id) { _id = id; }...public: int _id;}class Knight : public Player{public: Knight() : Player(1) // Player 기본생성자(명시적)를 이용하여 초기화 , 암시적으로도 가능 { _hp = 100; } or Knight() : _hp(100), Player(1) // 멤버변수 초기화 {}...pu..
다형성 다형성같은 메서드(멤버함수)가 다른 객체에서는 다르게 동작하는 것을 의미동일한 인터페이스를 통해 서로 다른 구현 가능코드의 유연성 및 확장성 다형성의 종류다형성같은 인터페이스를 통해, 여러가지 다른 형태의 객체를 다룰 수 있게 해주는 특성 오버로딩함수이름은 동일하되 인자를 다르게하여 재정의일반적으로 일반함수 생성에서도 많이 사용되는 기법인자형태에 따라 다르게 함수 호출오버로딩class Player{ void Test() { cout }};class Archer : public Player{ void Test(int hp) // Test() 오버로딩 { _hp = hp; cout }};오버라이딩똑같은 함수이름과 동일한 인..
상속성과 은닉성 상속성 & 은닉성상속을 하는 이유?코드의 재사용성을 줄이기 위해서계층적인 관계를 쉽게 구현하기 위해은닉을 하는 이유?객체의 데이터 및 메소드를 외부로부터 숨기고, 클래스 내부에서만 가능하게 하기 위해데이터의 무결성 유지, 객체의 인터페이스만을 통해 상호 작용안정성을 높이기 위해서접근 제어자 활용 : public / protected / privatepublic : 공용, 외부로 열려있는 접근 제어자protected : 클래스 내부에서 사용, 자식들까지 (연관된 클래스) 사용 가능private : 클래스 내부에서 사용, 자신 혼자만 사용 (상속되지 않음)부모가 자식에게 물려주는 멤버함수 & 멤버변수부모 클래스는 private를 제외한 protected , public을 상속할 수 있음 클래..
1. 클래스2. 생성자3. 소멸자클래스 class Player{public : // 접근지정자 void Test(); // 멤버 함수public : int _hp; // 멤버 변수 int _attack; // 멤버 변수};객체동작 및 데이터를 표현하는 설계도 역할객체의 분류클래스 : 설계도인스턴스(객체) : 클래스를 사용하기 위해 만든 객체 ( 클래스 변수 선언 했다고 생각...)클래스 구성멤버 함수 : 일반적인 함수랑 유사하나, 클래스에 속해 있다는 차이점이 존재멤버 변수 : 해당 클래스 내부에서 사용되는 지역변수와 유사한 변수(지역변수 : 중괄호 or 함수 내부 변수 , 멤버변수 : 해당 클래스 객체 내부에서 사용되는 변..
- Total
- Today
- Yesterday
- db
- 이진탐색
- 깊이우선탐색
- 백준
- bean
- 타입변환
- 정렬
- 기술면접
- DFS
- HTML5
- JSON
- Thymeleaf
- 알고리즘
- 티스토리챌린지
- BFS
- 우선순위 큐
- Java
- stack
- 포트폴리오
- 게시판 프로젝트
- 코딩테스트
- JDBC
- Spring
- 버블정렬
- 검증
- 게시판
- 오블완
- 클래스
- 예외처리
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |