본문 바로가기
반응형

cpp3

Effective C++ 항목18 : 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자 Effective C++ 항목18 : 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자 클래스를 설계할 때, 함수 인자가 비슷하면 실수할 우려가 있다! class Date { public: Date(int month, int day, int year); }; // month 와 day 를 거꾸로 적음. int형이기 때문에 정상적으로 프로그램이 진행된다.. Date d1(12, 3, 2023); // day를 31을 초과한 값으로 넣어줌. int형이므로 당연히 에러는 나지 않는다.. Date d2(3, 91, 2023); 위의 Date 클래스의 경우, 월과 일을 반대로 적거나 허용할 수 없는 값이 인자로 들어갈 수 있다. 심지어 컴파일 에러도 발생하지 않는다! 이러한 실수를 방지하려면 연.. 2023. 3. 12.
Effective C++ 항목12 : 객체의 모든 부분을 빠짐없이 복사하자 Effective C++ 항목12 : 객체의 모든 부분을 빠짐없이 복사하자 선요약 객체 복사 함수는 주어진 객체의 모든 데이터를 복사해야한다. 모든 데이터 멤버 상속 받았다면 기본 클래스 부분 클래스의 복사 함수를 두 개 구현할 때, 한 쪽을 이용해서 다른 쪽을 구현하려는 시도는 절대금지. 대신에 공통된 동작을 제3의 함수에 분리해놓고 양 쪽에서 이를 호출하게 만들어서 해결한다. 복사생성자와 복사 대입 연산자를 통틀어 객체 복사 함수라고 부른다. 개발자가 직접 복사 함수를 만들 때에는 클래스가 완전히 복사되지 않더라도 컴파일러가 에러나 경고를 표시하지 않는다. void logCall(const std::string& funcName); class Customer { public: ... Customer(.. 2023. 2. 19.
<Solution> 17.Letter Combinations of a Phone Number 17.Letter Combinations of a Phone Number Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order. A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters. Example 1: Input: digits = "23" Output: ["ad","ae","af","bd","be","bf","cd.. 2022. 9. 17.
반응형