C언어에서는 동일한 이름의 함수가 정의되는 것을 허용하지 않는다.하지만 위의 두 함수 정의를 허용해도 인자가 다르니 구분할 수 있지 않을까? 라는 생각이 들 수 있다.실제로 C++에서는 이를 허용하고, 이러한 형태의 함수 정의를 가리켜 함수 오버로딩(Fucntion O
'참조자'는 성격상 포인터와 비유되기 쉽다. 그러나 참조자는 포인터를 모르는 사람도 이해할 수 있는 개념이다."변수란 할당된 메모리 공간에 붙여진 이름이다. 그리고 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다."그렇다면, 할당된 하나의 메모리 공간에 둘 이상의
C++에서 클래스(class)란 구조체의 상위 호환으로 이해할 수 있다.C++의 구조체는 멤버로 함수를 포함할 수 있기에, C언어의 구조체보다 좀 더 확장된 의미를 가진다.C++에서 이러한 구조체와 클래스의 차이는 기본 접근 제어의 차이일 뿐, 나머지는 비슷하다.키워드
우리는 객체의 생성을 목적으로 클래스를 디자인한다. 그렇다면 좋은 클래스가 되기 위한 조건으로는 어떤 것들이 있을까? 여기에는 정보은닉과 캡슐화가 있다. 이는 좋은 클래스가 되기 위한 최소한의 조건이다. 0. 정보은닉 왼쪽 위의 좌표가 (0, 0)이고 오른쪽 아래의
지금까지는 객체를 생성하고 객체의 멤버변수 초기화를 목적으로 'init어쩌구'라는 이름의 함수를 정의하고 호출했다. 정보 은닉을 목적으로 멤버변수들을 private으로 선언했으니 이는 어쩔 수 없다. 다행히 '생성자'라는 것을 이용하면 객체도 생성과 동시에 초기화할 수
1. 들어가기 전에 1.1. this 포인터 thisFunc 함수 내에서 num은 매개변수 num을 의미하게 되므로, num이라는 이름만으로느느 멤버변수에 접근을 못하는데, 이때 this 포인터를 활용하면 멤버변수에 접근할 수 있음. 1.2. Self-refere
Person을 상속받는 UnivStudent 클래스를 보자.위 코드블록에는 두 가지 특징이 있다.클래스 선언 시, :public Person이 붙었다는 점 class UnivStudent: public Person 멤버 함수에 정의되지 않은 함수가 쓰였다는 점! w
문장은 같은데 결과는 다르다.위 main함수에서는 다음의 문장이 두 번 등장한다.그런데 ptr은 동일한 포인터 변수이다. 그럼에도 불구하고 실행결과는 다를 수 있다. 포인터 변수 ptr이 참조하는 객체의 자료형이 다르기 때문이다. 이것이 바로 다형성이다. 다음 설명을
AAA 클래스에는 virtual로 선언된 가상함수가 존재한다. 이렇듯 한개 이상의 가상함수를 포함하는 클래스에 대해서는 컴파일러가 다음 그림과 같은 형태의 '가상함수 테이블'이란 것을 만든다. 이를 간단히 'V-Table(virtual table)'이라고도 하는데, 이
추상 클래스는 개념적으로 인스턴스화 할 수 없는 클래스. 즉, 인스턴스를 생성할 수 없는 클래스로, 일반적으로 하나 이상의 순수 가상 함수가 있는 클래스로 구현된다. 순수 가상 함수는 파생 클래스에 의해 재정의되어야 하는 함수이다. 이는 멤버 함수의 선언에서 "= 0"
1. 예외 상황이란? C++에서 말하는 '예외(exception)'는 프로그램의 실행 도중에 발생하는 문제상황을 의미한다. ㅋ따라서 컴파일 시 발생하는 문법적인 에러는 예외의 범주에 포함되지 않는다. 예를 들어, 나이를 입력하라고 했는데, 0보다 작은 값이 입력됨.
Implicit conversions are automatically performed when a value is copied to a compatible type. For example:묵시적 변환은 값이 호환되는 형식으로 복사될 때 자동으로 수행된다. 예를 들어H
1. Type casting (타입 캐스팅, 형변환) C++ is a strong-typed language. Many conversions, specially those that imply a different interpretation of the value, r