![[C++] union (공용체)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbSpBz%2FbtsGUMfvGnU%2F3w9xj7ZoGWCkftsVysPyPk%2Fimg.jpg)
union (공용체) 서로 다른 데이터형을 한 번에 한 가지만 보관할 수 있는 데이터 형식(구조체는 int형과 double형을 한꺼번에 보관할 수 있지만, 공용체는 int형이나 double형 중에서 한 번에 어느 하나만 보관할 수 있음)구조체(struct)와 거의 동일하지만 모든 멤버 변수가 하나의 메모리 공간을 공유한다는 점이 다르다. 즉, 공용체(union)는 내부에 여러가지 타입의 멤버 변수를 선언하지만 실제 사용할 때에는 하나의 멤버 변수만 사용할 수 있다. 특징한 번에 하나의 값만 보관할 수 있으므로, 가장 큰 멤버를 보관할 수 있을 만큼의 공간이 필요하다. (따라서 공용체의 크기는 가장 큰 멤버의 크기가 됨)멤버 변수끼리 같은 메모리 공간을 공유하기 때문에 각 멤버들의 메모리 시작 주소가 동일..
![[전자 계산기 구조] 플린 분류](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4ycYu%2FbtsGST0RlzQ%2FtzAWIQfGvSr4Yj8rB0rRe1%2Fimg.jpg)
★KEYWORD★플린 분류 : 컴퓨터 구조 분류 / 명령어와 데이터 입력의 개수에 따라 구분 / SISD / SIMD / MISD / MIMD플린 분류 (Flynn's taxonomy)스탠퍼드 대학교의 전기공학과 교수인 마이클 J. 플린이 1966년에 제안한 컴퓨터 구조 분류이다.명령어(Instruction)와 데이터 입력(Data stream)의 개수에 따라 구분한다.분류플린이 정의한 네 가지 분류는 아키텍처에서 사용 가능한 동시 명령어 수 또는 데이터 스트림에 기초한다.SISD(Single Instruction, Single Data stream)SIMD(Single Instruction, Multiple Data streams)MISD(Multiple Instruction, Single Data s..
![[C++] Dynamic Cast (타입 캐스트 연산자)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpXcxS%2FbtsGUQgTyGS%2FFa4cpXbyvqdvexgCKGFZl1%2Fimg.jpg)
Dynamic Cast동적으로 형변환시키고, 형변환에 실패할 경우 nullptr를 리턴한다.부모 클래스의 포인터에서 자식 클래스의 포인터로 다운 캐스팅 해주는 연산자이다.class의 상속관계에서 형변환을 프로그래머가 올바르게 하도록 도와주는 기능을 제공한다.Dynamic Cast 사용 제약 사항상속 관계 안에서만 사용 가능하나 이상의 가상함수를 가지고 있어야 함 사용법dynamic_cast (변환할 내용)dynamic_cast(temp); 예제12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455#include stdio.h> class Test_ClassA{public: ..
![[C++] Lambda](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGSdC7%2FbtsGSPjbGg3%2FsLcLrD0cS4Z7cnRGzx1y4K%2Fimg.jpg)
Lambda람다 함수는 아래와 같이 대괄호[], 소괄호(), 중괄호{}, 소괄호() 이런 모양으로 생겼다.(여기서 생략이 가능한 건 소괄호들) [] ( ) { } ( )[캡처] (매개변수) { 함수 동작 } (호출인자)첫 번째 [] : 캡처두 번째 () : 매개변수 선언 부분 (생략 가능 - 매개변수 필요 없을 때)세 번째 {} : 함수 동작 부분네 번째 () : 함수 호출 시 인자 (생략 가능 - 호출 시에만 사용)람다 캡쳐람다에서는 [ ] ➡️ 이 대괄호 모양을 캡처라고 한다.캡처는 람다 외부에 정의되어있는 변수나 상수를 람다 내부에서 사용하기 위해서 사용한다. 캡쳐의 방식참조로 캡처 ➡️ &변수이름복사로 캡처 ➡️ 변수이름모든 외부 변수에 대해 참조 ➡️ [&]모든 외부 변수에 대해 복사➡️ [=..
![[C++] Static (정적 변수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSJjfb%2FbtsGQ60aPAp%2Fooco2eoTVrPfNqKKKKHlD0%2Fimg.jpg)
Static (정적 변수)모든 객체가 한 메모리를 공유하는 멤버 변수이다.객체 별로 각각 할당되는 멤버가 아니라 모든 객체가 공유하는 멤버다.메모리는 프로그램 시작 때부터 차지하고 있으며 메모리에 내내 값이 유지된다.static 변수는 데이터(Data)영역에 저장되어 함수가 종료되더라도 프로그램이 종료되지 않는 이상 메모리상에 남아있다.객체 생성 전에 반드시 전역 범위에서 미리 초기화해 주어야 한다.객체 이름으로도 접근이 가능하지만 클래스 이름으로도 접근이 가능하다.예제1234567891011121314151617181920212223242526272829303132333435363738#include stdio.h> class Test{public: static int a; // 선언이므로 메모리..
![[C++] typedef](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbM5zE%2FbtsGOdL4yO2%2FJ0yCdQu3J9pbKiGCE5L7l0%2Fimg.jpg)
typedefC/C++의 예약어이며 저장소 클래스 지정자 중 하나이다.프로그래머가 타입의 별칭을 생성하고, 실제 타입 이름 대신 별칭을 사용할 수 있다.즉, C++에서 이미 정의된 자료형이나 사용자 정의 자료형보다 더 짧거나 의미 있는 이름을 지어줄 수 있다.장점읽기 편하고, 입력하기 편하다.호환성이 좋아진다.유연성이 생긴다.사용법typedef를 선언하려면 typedef 키워드를 사용하고 자료형 다음에 별칭 이름을 사용하면 된다. typedef int LENGTH;typedef 재정의할 자료형 재정의할 이름;예제123456789101112#include stdio.h>#include stdlib.h> typedef un..