C/C++ 46
- C/C++ 문자열 함수 모음 자주 나오는 패턴 숫자를 문자열로 바꿔서 이어 붙여서 비교 → to_string + + 문자열 길이/부분 비교 → substr, length() 정렬 기준 → sort + 람다 (a+b > b+a) 문자열 ↔ 숫자 변환 함수 용도 ...
- C/C++ Q.C++ 컴파일/빌드 Q. 헤더 파일과 소스 파일(.cpp)의 차이점은 무엇인가요?Q. 유니티 빌드? A. C/C++ 프로젝트에서 컴파일 속도를 향상시키기 위해 여러 소스 파일을 하나의 파일로 합쳐서 빌드하는 방법Q. Include Guard와 #pragma once의 차이점과 장단점은 무엇인가요?Q...
- C/C++ Q.constexpr Q. constexpr에 대해 설명A.constexpr은 컴파일 타임에 계산 가능한 상수를 정의하거나 컴파일 타임에 실행 가능한 함수를 정의할 때 사용합니다. 항목 const constexpr 상수 여부 ...
- C/C++ Q.RAII Q. RAII?
- C/C++ Q.Rule of 0/3/5 ### Q. Rule of 0/3/5 ? 답변 보기
- C/C++ Q.Mutable ### Q. Mutable 대해 설명 답변 보기### Q. mutable 키워드는 언제 사용하나요? 답변 보기
- C/C++ Q.Explicit ### Q. Explicit에 대해 설명 답변 보기### Q. Explicit 키워드는 언제 필요한가요? 답변 보기
- C/C++ Q.auto Q. auto? 답변 보기### Q. auto는 어떻게 타입 추론이 가능한가? 답변 보기### Q. auto 사용 시 주의점? 답변 보기
- C/C++ Q.임시객체 Q. 임시객체? 답변 보기
- C/C++ Q.L-Value와 R-Value Q. L-Value와 R-Value? 답변 보기 일반적인 변수가 L-Value, 상수가 R-Value.Q. R-Value 참조? (&&) 답변 보기Q. R-Value 참조가 필요한 이유? 답변 보기Q. move? 답변 보기
- C/C++ Q.이동 Q. 이동 의미론? 답변 보기### Q. 이동 생성자? 답변 보기 ### Q. 그럼 이동만 사용하는게 효율적인 것 아닌가? 답변 보기 ### Q. 이동이 효율적이지 않은 경우? 답변 보기 ### Q. move? 답변 보기 ### Q. move와 forward의 차...
- C/C++ Q.람다식 Q. 람다식? 답변 보기Q. 람다식을 STL 알고리즘과 함께 사용할 때 어떤 이점이 있는가? 답변 보기
- C/C++ Q.멤버 초기화 Q. 초기화 리스트의 순서는? 답변 보기Q. 멤버 이니셜라이저(initializer list)는 언제 사용하나요? 답변 보기
- C/C++ Q.함수 객체와 함수 포인터 Q. 함수 객체는 무엇인가? 답변 보기Q. 함수 포인터? 답변 보기
- C/C++ Q.템플릿 Q. 템플릿? 답변 보기 자료형이나 값을 일반화하여 코드 재사용성을 높이기 위한 기능입니다. 컴파일 시점에 실제 타입이 결정되며, 같은 로직을 여러 타입에 대해 안전하게 사용할 수 있도록 합니다. 템플릿의 장점은 1. 타입 안정성을 유지하면서 2. 중복 코...
- C/C++ Q.인라인함수와 매크로함수 Q. 인라인 함수와 매크로 함수의 차이? 답변 보기 인라인 함수는 함수의 모든 코드를 함수 본문에 삽입하는 방식이며, 매크로 함수는 전처리기에서 치환하는 방식입니다. 인라인 함수는 컴파일 타임에 삽입되고, 매크로 함수는 전처리기에서 치환됩니다. 인라인 함수는 자료형...
- C/C++ Q.memcpy와 memmove Q. memcpy와 memmove 차이? 답변 보기 memcpy는 메모리의 내용을 직접 복사하고, memmove는 복사할 메모리의 내용을 임시 공간에 저장한 후에 복사합니다. 즉, memcpy의 속도가 더 빠른 반면, mommove는 상대적으로 안전합니다.
- C/C++ Q.스마트 포인터 Q. 스마트 포인터란? 답변 보기 유니크 포인터, 쉐어드 포인터, 위크 포인터가 있습니다. Q. 순환 참조 해결 방법? (shared_ptr) 답변 보기 Q. 프로젝트에 레퍼런스 카운터 기능이 있던데, 왜 스마트 포인터 사용 안하고 직접 만드셨나요? 답변 보기
- C/C++ Q.포인터 Q. 포인터와 레퍼런스 설명 답변 보기 포인터는 주소를 가질 수 있는 변수, 레퍼런스는 다른 객체 또는 값의 별칭이라고 할 수 있습니다. 포인터는 null값을 가질 수 있지만, 레퍼런스는 가질 수 없습니다. Q. int나 float같은 기본 자료형은 매개변수로 레퍼런스를 던...
- C/C++ Q.동적할당 ### Q. 동적할당? 답변 보기 ### Q. 왜 동적 메모리 할당을 할 필요가 있을까요? 답변 보기 ### Q. 동적 할당한 배열의 크기를 런타임 중에 변경할 수 있나요? 가능하다면 어떻게? 답변 보기 ### Q. 정적 메모리 할당과 동적 메모리 할당의...
- C/C++ Q.캐스팅 Q. 캐스팅? 답변 보기 스태틱 캐스트, 다이나믹 캐스트, 콘스트 캐스트, 리인터프리트 캐스트Q. static_cast가 dynamic_cast보다 빠른 이유? 답변 보기 static_cast는 컴파일 타임에 검증이 끝나서 추가적인 런타임 비용이 없기 때문에 상대적으로 ...
- C/C++ Q.복사 ### Q. 얕은 복사/깊은 복사의 차이점은? 답변 보기 깊은 복사는 새로운 메모리 공간을 할당하여 복사 ### Q. 각각 어느 상황에 사용하는지? 답변 보기### Q. 복사 생성자와 대입 연산자의 차이는? 답변 보기 복사 생성자는 새 객체를 만들면서 복사할 때 사...
- C/C++ Q.static Q. static에 대해 설명A. static 키워드는 정적 속성을 가지게 합니다. 4가지 유형으로 나눌 수 있습니다. 전역/파일 범위의 static 1static int g_value = 10; 해당 cpp파일 내부에서만 접근 가능 다른 파...
- C/C++ Q.자료형 ### Q. float의 소수점 부분이 제대로 저장이 안되는 이유는? 답변 보기
- C/C++ Q.call by Q. Call by Value, Call by Pointer, Call by Reference? 답변 보기 함수 호출 방식을 나타냅니다. 함수가 인자를 어떻게 받는지에 따라 함수 내에서 인자의 변화가 호출자에게 영향을 미치는지를 결정합니다. Call by Value - ...
- C/C++ Q.const Q. const에 대해A. const는 이 코드는 값을 바꾸지 않겠다는 의도 표현이며, 컴파일 타임 안전성과 코드 신뢰도를 높여줍니다. 일반 변수의 const 값 변경 불가 반드시 초기화 필요 포인터와 const 123const int*...
- C/C++ Q.구조체 Q. 구조체? 답변 보기 Q. 구조체와 클래스의 차이? 답변 보기 ### Q. 구조체 패딩? 답변 보기
- C/C++ Q.바인딩 ### Q. 바인딩? 답변 보기 프로그램 내에서 특정 이름(변수, 함수, 객체 등)과 해당 이름이 참조하는 실제 메모리 위치 또는 실행코드를 연결하는 과정입니다. ### Q. 정적바인딩과 동적바인딩? 답변 보기 정적 바인딩은 컴파일 타임에 호출 대상이 결정되어 ...
- C/C++ Q.가상함수와 추상클래스 가상함수가상함수는 virtual 키워드가 붙은 함수이며, 자식 클래스에서 정의할 멤버 함수 입니다.부모 클래스의 포인터나 레퍼런스가 자식 클래스 객체를 가리킬 때,자식 클래스에서 의 가상함수 재정의에 의해 호출되는 함수가 달라지게 합니다.객체의 가상 함수 포인터를 통해 클래스의 가...
- C/C++ Q.오버로딩과 오버라이딩 Q. C++에서 오버로딩과 오버라이딩의 차이는? 답변 보기 재정의, 다중 정의 오버로딩은 함수의 이름은 같고, 매개변수가 다릅니다. 오버라이딩은 부모 클래스의 함수를 자식 클래스에서 재정의해서 사용합니다. ### Q. 오버로딩에서 반환값만 다르게 하면 어떻게 되나...
- C/C++ Q.상속 ### Q. 상속이란? 답변 보기### Q. is-a, has-a 답변 보기### Q. 다이아몬드 상속 문제? 답변 보기 다이아몬드 상속 문제는 동일한 부모 클래스를 여러 경로로 상속받을 때 발생하는 중복과 모호성 문제이며, 가상 상속(`virtual`)을 통해 해결할 수 ...
- C/C++ Q.SOLID 원칙 SOLID 원칙은 객체 지향 프로그래밍과 설계에서유지 보수성과 확장성을 높이기 위해 사용되는 다섯 가지 원칙입니다. SRP 단일 책임의 원칙 : 각 클래스는 하나의 책임만 가져야 합니다. 즉, 클래스는 오직 하나의 기능이나 역할만 담당하도록 설계되어야 합니다. ...
- C/C++ 객체 지향(OOP) 프로그래밍 객체 지향 프로그래밍(Object-Oriented Programing) 이란?소프트웨어를 객체라는 단위로 나누어 개발하는 프로그래밍 패러다임으로,객체들이 상호작용하는 방식으로 프로그램을 구성합니다.코드 재사용성이 좋고, 유지보수에 용이합니다. 프로그래밍 언어에서 객체란 객체 =...
- C/C++ 함수 함수main에서 A를 호출하고, 그 안에서 B를 호출하고, C를 호출했다고 하자. 그렇다면 C가 종료되고 돌아와야 B가 종료되고 돌아와야 A가 종료된다. A안에서 호출된 다른 함수들은 절대 A보다 나중에 종료될 수 없다. 결국 A안에 있는 모든 함수들이 종료되고 돌아와야 비로...
- C/C++ printf() scanf() 문자 입출력 printf() scanf() 문자 입출력 <stdio.h> 헤더파일이 필요하다. printf() 는 출력한다. scanf() 는 첫 번째 매개변수의 형식에 맞게 데이터를 입력받고, 그 데이터를 n번째 매개변수에 저장한다.사용 예시printf()123printf("...
- C/C++ 반복문 for문 사용예시1234for (/*반복자 초기화*/; /*반복자 조건체크*/ ; /*반복자 변경*/){}123456for (int i = 0; i < 3; ++i){ printf("Output Test\n");}// 4번 반복(출력)while문 사용예시1234while(/*...
- C/C++ 변수 변수의 종류 지역변수 함수 내부에 선언된 변수해당 함수의 스택 메모리안에 들어있다. 전역변수 함수 외부에 선언된 변수Data영역을 사용한다. 정적변수 Data영역을 사용한다. ...
- C/C++ 비트 연산자 비트 단위로 연산이 진행되는 연산자비트연산자 사용법<< >> 비트를 화살표가 가리키는 방향으로 한 칸씩 민다. 비트가 한 자리 올라가는 것은 2배가 된다는 의미다.123unsigned char byte = 13;byte <<= 3; // 2^n...
- C/C++ switch case 구문과 삼항연산자 switch case 구문 사용법12345678switch(/*내가 원하는 특정 상수값 (변수ok 변수 안에 들어있는 데이터*/){ case /*조건 ex)10*/: break; default: break;}switch case 코드 예시12345678...
- C/C++ if else 비교 연산자1234567==!=<>>=참, 거짓if else 구문123456789if (data == 10){ // if 조건이 참인 경우 수행}else { // if 조건이 거짓인 경우 수행}else if1234567891011121314151617if...
- C/C++ 논리 연산자 논리 연산자1234567! (역)&& (And)|| (Or) 참(true), 거짓(false) 참 : 0 이 아닌 값, 주로 1 거짓 : 0 bool타입의 크기는 1Byte논리연산자는 연산의 결과가 1 또는 0 만 나올수 있는 연산자이다...
- C/C++ 증감 연산자 1234567data = 0;++data; // 전위(전치)data++; // 후위(후치)--data;data--; 후위 연산자로 사용하는 경우, 연산자 우선순위가 가장 나중으로 밀린다.특별한 사유가 없다면 전위로 사용하는 습관을 들이자. (실수방지)
- C/C++ 산술 연산자 산술 연산자12345+-*/% (모듈러스, 나머지)12++--1234int data = 1 + 1;data = data + 20; //data가 두번 반복된다. 이를 편하게 하기 위해서 ↓data += 20;연산자 우선순위연산자들이 나열됐을 때 우선순위가 있다.나머지 연산자 %실수...
- C/C++ 실수형 자료형 실수정수데이터와 실수 데이터를 구분하는 이유는?정수타입데이터와 실수타입데이터를 처리하는 방식 자체가 완전히 다르기 때문이다.0 ~ 1 까지의 수를 표현한다고 하면 무한대로 만들어 낼 수 있다.그렇다면 컴퓨터는 이를 어떻게 표현하는 걸까? 컴퓨터가 표현할 수 있는 수는 Byte크기...
- C/C++ 정수형 자료형 음수 표현양의 정수 128개 (뒤에 7bit만 사용) 0 ~ 127 0 · · · · · · · 음의 정수 128개 (뒤에 7bit만 사용) -1 ~ -128 1 ...
- C/C++ 자료형 자료형(Data type)은 왜 있을까?int(정수)와 float(실수)를 다르게 생각할까?10과 20은 다르긴 하지만 얘네들을 가지고 할 수 있는 일은 같다.1과 0.111은 할 수 있는 방법이 다르다. 1과 0.111은 그냥 더하면 안된다. 자릿수를 맞춰야하고 더하고, 유효자리...