전체 글75 C++ 스마트 포인터 ( shared_ptr, make_shared ) 스마트 포인터 #include c++11부터 지원 c++에서는 "메모리 누수"로부터 프로그램의 안정성을 보장하기 위해 스마트 포인터를 제공한다. 스마트 포인터는 생성하면 힙 메모리에 올라간다. (동적할당한다고 보면 됨) 스마트 포인터는 사용이 끝난 메모리를 자동으로 해제해 준다. 스마트 포인터의 동작 보통 new를 사용해 기본 포인터가 실제 메모리를 가리키도록 초기화한 후에, 기본 포인터를 스마트 포인터에 대입하여 사용한다. ➡️ new가 반환하는 주소값을 스마트 포인터에 대입하면 따로 메모리를 해제할 필요가 없다!! 스마트 포인터의 종류 3가지 unique_ptr shared_ptr weak_ptr shared_ptr 하나의 특정 객체를 참조하는 스마트 포인터가 총 몇개인지를 참조하는.. 2022. 4. 10. C++ 범위 지정 연산자(::)와 namespace 범위 지정 연산자 ( :: ) 함수나 변수명 등을 namespace에 따라 구분할 때 사용 namespace 영역이라는 말 그대로 변수나 함수들이 선언된 범위, 묶음 이라고 생각하면 된다. 사용법 #include #include using namespace std; namespace A{ int test = 2; void hello(){ cout 2022. 4. 10. C++ 멤버 초기화 리스트 클래스 멤버변수 초기화 리스트 사용 방법 생성자 괄호() 뒤에 콜론(:)으로 표기한다. 초기화 할 멤버 변수들을 쉼표로 구변하여 표기한다. 소괄호()를 이용해서 멤버 변수를 초기화한다. 사용법 예시1) #include #include using namespace std; class Car { private: string name; int number; bool inSuv; public: Car() : name("kdy"), number(1212), inSuv(false) { cout 2022. 4. 10. C++ 가상 함수(virtual function) 가상 함수 부모를 상속받은 자식 클래스에서 "재정의할 것"으로 기대하고 정해놓은 함수 자식 클래스에서 가상함수를 재정의하면 이전에 정의되었던 내용들은 모두 새롭게 정의된 내용들로 교체된다. 부모 클래스에서 virtual 키워드를 사용해 가상 함수를 선언하면 자식 클래스에서 재정의된 멤버함수도 자동으로 가상 함수가 된다. 사용법 멤버함수 앞에 virtual을 붙이면 된다. 가상 함수 호출 방식 c++ 에서는 가상 함수가 아닌 일반적인 멤버 함수들의 호출은 컴파일 할 때 고정된 메모리 주소로 변환된다. ➡️ 정적 바인딩 가상 함수를 호출할 때는 컴파일러가 어떤 함수를 호출해야 하는지 미리 알 수 없다. 왜냐하면, 가상 함수는 프로그램이 실행될 때(런타임 때) 객체를 결정하므로 컴파일 타임에 해당 객체를 특정.. 2022. 4. 9. 알고리즘 문제풀이 전 코드 작성 요령 코딩테스트 코드 작성 팁코딩테스트와 개발은 다르다.남들이 보기 편한 클린코드가 아닌 가장 빠르게 풀 수 있도록 짜는 것이 훨씬 중요하다.출력 맨 마지막 공백 or 줄바꿈이 추가로 있어도 상관이 없다.디버거는 사용하지 않는다. 차라리 중간에 변수를 확인하고 싶다면 printf나 cout으로 확인한다. endl은 죽어도 쓰지 마라!!! endl은 개행문자('\n')을 출력하고 출력 버퍼를 비우라는 명령어이다. 온라인 저지 채점은 출력값만 확인하기 때문에 버퍼를 매번 비워줄 필요가 없다. (시간낭비)#include 선언vscode에서만 쓸 수 있는 구현에 필요한 헤더들을 다 인클루드해 놓은 헤더이다.#include#include#include#include#include#include#include#inclu.. 2022. 3. 12. c++에서 string 클래스를 이용한 문자열 사용 ( getline() ) getline() #include #include using namespace std; int main(){ string name; cout 2022. 3. 12. 이전 1 ··· 4 5 6 7 8 9 10 ··· 13 다음