[C++] 가상 함수(Virtual Function)
가상 함수는 객체 지향 프로그래밍에서, 상속 받는 클래스 내에서 오버라이딩 될 수 있는 함수입니다.virtual 키워드를 붙여 사용가능합니다.virtual을 붙이면 파생 클래스에서 재정의할 것으로 보이는 멤버 함수를 의미합니다. 사용 방법은 아래와 같습니다. …
가상 함수는 객체 지향 프로그래밍에서, 상속 받는 클래스 내에서 오버라이딩 될 수 있는 함수입니다.virtual 키워드를 붙여 사용가능합니다.virtual을 붙이면 파생 클래스에서 재정의할 것으로 보이는 멤버 함수를 의미합니다. 사용 방법은 아래와 같습니다. …
C++에서 사용하는 데이터 형식의 종류(자료형)와 그 값의 범위는 아래와 같습니다. 해당 값은 아래 코드와 같이 sizeof로 확인이 가능합니다. 일반적으로 데이터를 표현할 때 데이터 비트 수가 n개이면 2의 n승까지 데이터 표현이 …
이번 글에서는 클래스 템플릿에 대해 알아보겠습니다. 클래스 템플릿도 함수 템플릿처럼 만드시면 됩니다. 클래스 멤버 변수나 함수에 템플릿을 지정해주셔서 위와 같이 사용하시면 됩니다.만약 클래스 내부에 멤버 함수를 선언하고, 외부에 멤버 함수를 …
template는 매개변수의 타입에 따라 함수나 클래스를 생성하는 C++의 일반화 프로그래밍의 메커니즘입니다.template를 사용하면 같은 작업, 다른 매개변수에 따라 동작하는 함수나 클래스를 한번에 정의할 수 있습니다. 함수 템플릿은 다음과 같은 방식으로 사용합니다. …
안녕하세요 이번 글에서는 함수 오버로딩에 대해 알아보겠습니다. 우선 아래 코드의 문제점을 무엇일까요? swap(&c, &d);를 보시면 double형 주소를 인자로 전달합니다. 하지만 swap 함수는 int 포인트로 인자를 받으므로 “double *”가 “int *”로 형변환이 …
안녕하세요 오늘은, C++의 대소문자 변환하는 함수 tolower, toupper 함수를 알아보겠습니다.tolower, toupper함수는 인자로 1개의 아스키 코드 값을 전달 하면 해당 문자의 대소문자를 변환해 줍니다. 대문자 -> 소문자로 변환하는 tolower의 함수 원형은 …
처음에 개발을 배우면 아래와 같이 둘중 하나를 가지고 코딩하게 됩니다. 또는 저는 std:: 쓰는게 싫어서 using namespace std;를 많이 사용했습니다.이 namespace는 왜 쓰는 걸까요? namespace는 코드 영역을 정의하기 위해 사용합니다. …
저번 글에서 비트 단위 연산자에 대해서 설명했었습니다.이미지가 아니라 눈으로 보고, 실제로 조작하는 프로그램이 있었으면 좋겠다고 생각해서 만들게 됐네요. 아래 파일을 다운받고 실행 하시면 됩니다. BitwiseTest.exe를 실행 시키면 아래와 같이 실행 …
오늘은 union, 공용체에 대해 알아보겠습니다.공용체는 구조체와 비슷하지만 공용체 안에 선언된 변수들은 메모리를 공유한다는게 제일 큰 차이가 되겠네요.이것 또한 현재는 많이 사용하지 않지만 과거에 메모리가 부족했을때 많이 사용했습니다.네트워크 통신에서 과부하를 줄이기 위해 패킷을 최대한 줄일 때에도 많이 사용합니다. 사용 방법은 아래와 같습니다. 1Byte를 공용체를 사용하여 비트 단위로 관리하면 선언하는데 작업이 더 걸리지만 사용하는 입장에서는 매우 편하게 사용할 수 있습니다. 위 코드를 이미지화 하면 아래 그림과 같습니다. 실제 예제로 알아보겠습니다사람을 구조체로 선언한다고 합시다.여러가지 신체부위가 있겠지만, 양손(손가락 포함)을 코드로 구현하면 아래와 같습니다. 만약 …
이전 글에서 비트 단위 연산을 통해 비트 데이터를 조작하는 것을 알아봤습니다.사실 비트 단위의 데이터를 조작하는 것은 그렇게 자주 경험할 일이 아닙니다.그냥 이런 코딩 방법도 있구나 알아두기만 하세요 기본적인 선언 방법은 …