윤성우의 열혈 C++ 중 헷갈리는 것 요약 정리.Chapter 1장, 2장
구조체 c++의 구조체는 typedef 없이 구조체 변수 생성이 가능하다 c++의 구조체는 내부에 함수를 정의 할 수 있다. 단, 이때 내부 함수는 inline 취급이다. 그게 싫으면 밖으로 빼서 써라 클래스와 객체 기본적으로 접근제어 지시자를 선언하지 않으면 cl
CH5 & CH6
Chapter 07. 상속(Inheritance)의 이해 07-1. 상속에 들어가기 앞서 기능의 처리를 실제로 담당하는 클래스를 가리켜 컨트롤 클래스 또는 핸들러 클래스라고 한다. 07-2. 상속의 문법적인 이해 상속이란? 기존 클래스를 재사용하여 새로운
클래스 기반으로도 포인터 변수를 선언가능Person \* ptr;ptr = new Person();위에서 Person형 포인터는 Person 객체뿐만 아니라, Person을 상속하는 유도 클래스의 객체도 가리킬 수 있다."C++에서, AAA형 포인터 변수는 AAA 객체
객체가 생성되면 멤버변수는 객체 내에 존재하지만, 멤버함수는 메모리의 한 공간에 별도로 위치하고선, 이함수가 정의된 클래스의 모든 객체가 이를 공유하는 형태를 취한다.한 개 이상의 가상함수를 포함하는 클래스에 대해서는 컴파일러가 다음 그림과 같은 형태의 '가상함수 테이
operator+라는 특이한 함수는 위와같이 쓸수도 있고, pos1 + pos2로 바로 쓸 수 있다.멤버함수에 의한 연산자 오버로딩위에서 보였던 pos1.operator+(pos2)와 같은 방법전역함수에 의한 연산자 오버로딩멤버함수가 아니라 전역 필드에 그냥 함수를 만
Chapter 11. 연산자 오버로딩2 11-1. 반드시 해야 하는 대입 연산자의 오버로딩 객체간 대입연산의 비밀: 디폴트 대입 연산자 잠시 복사 생성자 복습 따로 정의하지 않으면 디폴트 복사 생성자가 삽입된다. 디폭트 복사 생성자는 멤버 대 멤버의 복사(얕은 복사)
C++표준 라이브러리에는 string이라는 이름의 클래스가 정의되어있다. 문자열의 처리를 목적으로 정의된 클래스이머, 이 클래스의 사용을 위해서는 헤더파일 <string>을 포함해야 한다.하나. 문자열을 인자로 전달받는 생성자의 정의string 객체의 대입은이런식
함수 템플릿은 함수를 만들어 낸다. 함수의 기능은 결정되어 있지만, 자료형은 결정되어 있지 않아서 결졍해야 한다.즉, 함수 템플릿이라는 것은 함수를 만드는 도구가 된다.여기서 함수 템플릿을 통해 만들어진 것은 컴파일 시 Add<int>, Add<double>
별거 없다. 그냥 배열 클래스를 만들었는데 배열 타입이 정해진게 아니고 템플릿으로 변경된 것Ch13에서 보았듯이 함수 템플릿을 특수화하는 이유는 특정 자료형에 대해서 구분이 되는 다른 행동을 보이기 위해서이다. 마찬가지로 클래스 템플릿을 특수화하는 이유는 특정 자료형을
C++에서 말하는 예외(Exception)은 프로그램의 실행 도중에 발생하는 문제상황을 의미한다. 따라서 컴파일 시 발생하는 문법적인 에러는 예외의 범주에 포함되지 않는다. 예외의 예시를 들자면 다음과 같다.나이를 입력하라고 했는데 음수값이 입력됨나눗셈을 위한 두 개의
C++ 진영에서 C 스타일의 형 변환 연산자를 가리켜 '오래된 C 스타일 형 변환 연산자(Old C-style cast operator)'라 부르기도 한다. 이렇듯 C 스타일의 형 변환 연산자는 C언어와의 호환성을 위해서 존재할 뿐, C++에서는 새로운 형 변환 연산자