Q.캐스팅
Q. 캐스팅? A. 스태틱 캐스트, 다이나믹 캐스트, 콘스트 캐스트, 리인터프리트 캐스트 Q. static_cast가 dynamic_cast보다 빠른 이유? A. static_cast는 컴파일 타임에 검증이 끝나서 추가적인 런타임 비용이 없기 때문에 상대적으로 빠릅니다. (dynamic_cast는 런타임 검사가 필요해 상대적으로 느림) Q. con...
Q. 캐스팅? A. 스태틱 캐스트, 다이나믹 캐스트, 콘스트 캐스트, 리인터프리트 캐스트 Q. static_cast가 dynamic_cast보다 빠른 이유? A. static_cast는 컴파일 타임에 검증이 끝나서 추가적인 런타임 비용이 없기 때문에 상대적으로 빠릅니다. (dynamic_cast는 런타임 검사가 필요해 상대적으로 느림) Q. con...
Q. 얕은 복사/깊은 복사의 차이점은? 깊은 복사는 새로운 메모리 공간을 할당하여 복사 Q. 각각 어느 상황에 사용하는지? Q. 복사 생성자와 대입 연산자의 차이는? A. 복사 생성자는 새 객체를 만들면서 복사할 때 사용, 대입 연산자는 이미 생성된 객체에 다른 객체의 값을 복사할 때 사용합니다. 자원을 소유하는 클래스(MyClass가...
Q. static에 대해 설명 A. static 키워드는 정적 속성을 가지게 합니다. 4가지 유형으로 나눌 수 있습니다. 전역/파일 범위의 static static int g_value = 10; 해당 cpp파일 내부에서만 접근 가능 다른 파일에서 참조 불가 전역 변수 충돌 방지 (요즘은 ...
Q. float의 소수점 부분이 제대로 저장이 안되는 이유는?
Q. Call by Value, Call by Pointer, Call by Reference? 답변 보기 함수 호출 방식을 나타냅니다. 함수가 인자를 어떻게 받는지에 따라 함수 내에서 인자의 변화가 호출자에게 영향을 미치는지를 결정합니다. Call by Value - 값만 전달->원본 변수는 변화 없음 - 함수에 인자의...
Q. const에 대해 A. const는 이 코드는 값을 바꾸지 않겠다는 의도 표현이며, 컴파일 타임 안전성과 코드 신뢰도를 높여줍니다. 일반 변수의 const 값 변경 불가 반드시 초기화 필요 포인터와 const const int* p1; // 가리키는 값이 const int* co...
Q. 구조체? Q. 구조체와 클래스의 차이? Q. 구조체 패딩?
Q. 바인딩? A. 프로그램 내에서 특정 이름(변수, 함수, 객체 등)과 해당 이름이 참조하는 실제 메모리 위치 또는 실행코드를 연결하는 과정입니다. Q. 정적바인딩과 동적바인딩? A. 정적 바인딩은 컴파일 타임에 호출 대상이 결정되어 성능과 최적화에 유리하고, 동적 바인딩은 런타임 다형성을 제공해 확장성과 유지보수성이 좋지만, 가상 함수 호출 비용...
가상함수 가상함수는 virtual 키워드가 붙은 함수이며, 자식 클래스에서 정의할 멤버 함수 입니다. 부모 클래스의 포인터나 레퍼런스가 자식 클래스 객체를 가리킬 때, 자식 클래스에서 의 가상함수 재정의에 의해 호출되는 함수가 달라지게 합니다. 객체의 가상 함수 포인터를 통해 클래스의 가상 함수 테이블에 접근합니다. vtable 안의 함수 포인터...
// 단순 연결 리스트의 노드 순서 뒤집기 함수 void reverseList(Node*& head) { Node* prev = nullptr; Node* current = head; Node* next = nullptr; while (current != nullptr) { next = current...