언어 및 엔진(79)
-
[C++] Public / Protected
Public / Protected 상속 시 public은 모든 클래스에서 사용 가능, 공유자원 protected는 부모 자식간 클래스만 사용 가능
2024.04.18 -
[C++] 동기 / 비동기
동기 / 비동기 동기 : 요청과 결과가 동시에 일어남 함수의 결과를 호출한 곳에서 처리 비동기 : 요청과 결과가 동시에 일어나지 않음 함수의 결과를 호출한 쪽에서 처리하지 않음 블럭 : 함수를 호출했을 때 행위를 다 끝마칠 때까지 기다렸다가 리턴되는 것 논블럭 : 함수를 호출했을 때 기대하는 행위만 하고 리턴되는 것 동기 + 블럭 : 함수를 호출하여 순차적으로 일을 진행 비동기 + 블럭 : 함수를 호출하여 바로 결과를 받고 각자 자신의 일을 진행 동기 + 논블럭 : 함수를 호출하여 바로 결과를 받지만 결과를 받은 쪽에서는 결과를 확인할 뿐, 자신의 일을 하지 않음 비동기 + 논블럭 : 함수를 호출하여 일을 시키고 바로 리턴 후 각자의 일을 함
2024.04.18 -
[C++] 복사생성자 / 이동생성자
복사생성자 / 이동생성자 복사생성자 자기 자신과 같은 형태(자료형)의 객체를 인자로 받을 수 있는 생성자 다른 객체에서 값을 복사하여 초기화 함 호출 형태 : 기존의 객체로 새로운 객체 초기화, 객체를 값에 의해 전달, 리턴 ->복사될 때에는 생성자를 호출하지 않지만, 소멸할 때에는 소멸자 호출(참조자로 호출 시 소멸자는 호출되지 않음) &로 전달, const선언 디폴트 복사생성자 복사생성자 정의 생략 시 자동으로 삽입, 얕은 복사를 하게 된다. 이동생성자 성능향상을 목적으로 함, 불필요한 복사와 임시 변수 없애기 타입&& rValue 복사가 아닌 이동을 함
2024.04.18 -
[C++] 얕은 복사 / 깊은 복사
얕은 복사 깊은 복사 얕은 복사 메모리에 저장되어 있는 위치의 주소값만을 가지고 있음(바로가기), 원본이 없어지면 찾을 수 없게 된다 깊은 복사 메모리에 저장된 내용까지 복사(복사본), 원본이 없어져도 찾을 수 있다.
2024.04.18 -
[C++] Abstract / Interface
Abstract와 Interface Abstract : 추상. 구현이 되지 않은. 미완성 클래스의 이름 뒤 혹은 멤버 변수 앞에 붙게 됨 Abstract Class : 추상 클래스 : 순수 가상 함수가 하나 이상 있는 클래스 객체를 생성할 수 없음, 포인터는 만들 수 있음 내용이 없기 때문에 자식 클래스가 반드시 내용을 만들어 줘야 한다.(뼈대만 만듦) Pure Virtual Function : 순수 가상 함수 추상클래스를 상속 받는 클래스도 추상 클래스가 된다. 상속 받은 모든 순수 가상함수는 오버라이딩(재정의)하면 객체를 생성할 수 있음 그냥 가상함수(Virtual Function)는 자식클래스가 오버라이딩(재정의)할 의무가 없다 -> 다형성(미리 토대를 만들어 둠) 없음 클래스이고, 클래스와 관련이..
2024.04.18 -
[C++] 컴파일 작동 순서
컴파일 시 작동 순서 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 소스코드 -> 전처리 -> 전처리 후 소스 -> C 컴파일 -> 어셈블리 소스 -> 어셈블리 컴파일 -> 오브젝트 파링 -> 링크 -> 실행파일 전처리(Preprocess) : 소스 내부에 #로 시작되는 것들 실행. 컴파일 전에 어떤 순서로 컴파일 할지 결정, 가동성 높임 컴파일(Compile) : 소스파일을 기계어로 번역. 에러, 경고 발생. C컴파일 -> 어셈블리어 -> 어셈블리컴파일 -> 기계어. .obj파일(기계어) 생성 링크(Link) : .obj파일과 소스코드에서 사용되는 함수가 있는 .lib파일을 이용, 실행 가능한 파일을 만듦. 변수, 함수가 없을 시 오류 발생. .exe파일 생성
2024.04.18