반응형 분류 전체보기188 Effective C++ 항목7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. Effective C++ 항목7 : 다형성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자. 객체에서 메모리 등 자원의 누수를 막기 위해서는 소멸자 호출 class TimeKeeper { public: TimeKeeper(); ~TimeKeeper(); ... }; class AtomicClock: public TimeKeeper { ... }; class WaterClock: public TimeKeeper { ... }; class WristClock: public TimeKeeper { ... }; ... // 팩토리 메서드 패턴 TimeKeeper* ptk = getTimeKeeper(); ... delete ptk; 문제 발생! 기본 클래스의 소멸자가 비가상 소멸자인 경우, 그의.. 2023. 2. 5. 3분 만에 React 개발환경 세팅하기 mac OS에서 React 개발환경 세팅하기 - 애플 디바이스에서 리액트 개발환경 구축하기 node js 설치 node js 홈페이지에 들어가서 다운로드 파일을 받는다. 사용하는 운영체제에 맞게 선택하자. https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 다운로드 받은 파일을 실행하면 아래와 같이 설치가 진행된다. 마지막까지 동의 버튼을 누르면 된다. 크롬 브라우저 설치 웹 개발을 위해 크롬 브라우저가 필요하다. 아래 링크를 타고 설치하자. https://www.google.co.kr/chrome/?brand=IBEF&gclid=CjwKCAjwk6-L.. 2023. 1. 28. Effective C++ 항목6 : 컴파일러가 만들어낸 함수가 필요 없다면 사용을 금지하자 Effective C++ 항목6 컴파일러가 만들어낸 함수가 필요 없다면 사용을 금지하자 클래스의 복사를 금지하고 싶다면? 복사 생성자 / 복사 대입 연산자를 private으로 선언하면? -> 90점 짜리 대응! friend함수가 이를 호출할 수 있기 때문. 100점 짜리 대응은 private멤버로 선언하고 구현하지 않는 것! 이제 누군가 복사 시도하면 링크 에러로 실패할 것 복사 시도할 때 컴파일 에러로 나타나게 하고 싶다면? private선언'만' 된 복사 생성자와 복사 대입 연산잦를 기본 클래스에 넣고 우리가 사용하려는 클래스를 기본 클래스의 파생 클래스로 둠 (클래스 간 역할 분리도 되므로 일석이조) boost라이브러리의 noncopyable클래스를 상속 받도록 하면 위의 내용을 한 번에 해결해주므.. 2023. 1. 27. Effective C++ 항목5 : 컴파일러가 기본으로 만드는 함수들에 촉각을 세우자 Effective C++ 항목5 컴파일러가 기본으로 만드는 함수들에 촉각을 세우자 개발자가 클래스에 기본 생성자/복사 생성자/소멸자/복사 대입 연산자를 선언하지 않으면? 컴파일러가 필요하다고 판단하여 이 함수들을 알아서 기본형으로 만듦 소멸자의 경우, 기본 클래스의 소멸자가 가상이 아니면 동일하게 비가상 소멸자로 만듦 복사 생성자/복사 대입 연산자의 경우, 복사하는 변수들이 컴파일러가 아는 기본형이라면 자동 생성 컴파일러가 모르는 자료형이라면, legal하지 않다면, resonable하지 않다면 생성하지 않음 ex) 복사 대상이 참조자, 상수이라면 자동 생성 실패 (컴파일 거부) 2023. 1. 26. 이전 1 ··· 17 18 19 20 21 22 23 ··· 47 다음 반응형