본문 바로가기

반응형

문과 코린이의, [C. C++] 기록/C++ 이론

(46)
[문과 코린이의 IT 기록장] C++ - 클래스 템플릿(Class Template) (Point 클래스 템플릿과 배열 클래스 템플릿, 특정 템플릿 클래스의 객체를 인자로 받는 일반함수의 정의와, friend 선언) [문과 코린이의 IT 기록장] C++ - 클래스 템플릿(Class Template) (Point 클래스 템플릿과 배열 클래스 템플릿, 특정 템플릿 클래스의 객체를 인자로 받는 일반함수의 정의와, friend 선언) * 이 포스팅의 '3.배열 클래스의 템플릿화'를 기반으로 확장된 예제를 풀어나가보자 함. [문과 코린이의 IT 기록장] C++ - 클래스 템플릿(Class Template) (클래스 템플릿의 정의, 클래스 템플릿 [문과 코린이의 IT 기록장] C++ - 클래스 템플릿(Class Template) (클래스 템플릿의 정의, 클래스 템플릿의 선언과 정의의 분리, 배열 클래스의 템플릿화) 1. 클래스 템플릿의 정의 [문과 vansoft1215.tistory.com 1. Point 클래스 템플릿과 배열..
[문과 코린이의 IT 기록장] C++ - 클래스 템플릿(Class Template) (클래스 템플릿의 정의, 클래스 템플릿의 선언과 정의의 분리, 배열 클래스의 템플릿화) [문과 코린이의 IT 기록장] C++ - 클래스 템플릿(Class Template) (클래스 템플릿의 정의, 클래스 템플릿의 선언과 정의의 분리, 배열 클래스의 템플릿화) 1. 클래스 템플릿의 정의 [문과 코린이의 IT 기록장] C,C++ - 템플릿(Template)에 대한 이해와 함수 템플릿 (함수를 대상으로 템 [문과 코린이의 IT 기록장] C,C++ - 템플릿(Template)에 대한 이해와 함수 템플릿 (함수를 대상으로 템플릿 이해하기, 함수 템플릿과 템플릿 함수, 둘 이상의 형(Type)에 대해 템플릿 vansoft1215.tistory.com * 이전의 내용처럼 함수를 템플릿으로 정의했듯이, 클래스도 템플릿으로 정의가 가능하다. [문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 5 ..
[문과 코린이의 IT 기록장] C,C++ - 템플릿(Template)에 대한 이해와 함수 템플릿 (함수를 대상으로 템플릿 이해하기, 함수 템플릿과 템플릿 함수, 둘 이상의 형(Type)에 대해 템플릿 선언하기, 함수 .. [문과 코린이의 IT 기록장] C,C++ - 템플릿(Template)에 대한 이해와 함수 템플릿 (함수를 대상으로 템플릿 이해하기, 함수 템플릿과 템플릿 함수, 둘 이상의 형(Type)에 대해 템플릿 선언하기, 함수 템플릿의 특수화 (Specialization)) 1. 함수를 대상으로 템플릿 이해하기 - 함수 템플릿의 특징 : 함수 템플릿은 함수를 만들어 낸다. : 함수의 기능은 결정되어 있으나, 자료형은 결정되어 있지 않아서 결정해야 한다. * 즉 다양한 자료형의 함수를 만들어 낼 수 있다. 1 ) 함수 int Add(int num1, int num2) { return num1 + num2; } - 함수의 기능 : 덧셈 - 함수의 자료형 : int형 2 ) 함수 -> 템플릿 활용 - 이러한 함수를 만들..
[문과 코린이의 IT 기록장] C,C++ - String 클래스의 디자인(C++ 표준과 표준 string 클래스, 문자열 처리 클래스의 정의) [문과 코린이의 IT 기록장] C,C++-String 클래스의 디자인(C++ 표준과 표준 string 클래스, 문자열 처리 클래스의 정의) 1. C++ 표준과, 표준 String 클래스 [ 표준 String 클래스 ] * C++ 표준 라이브러리에는 string이라는 이름의 클래스가 정의되어 있음. - string클래스 : 문자열 처리를 목적으로 정의된 클래스 - string 클래스의 사용 : 헤더파일 포함 Case 1 ) #include #include using namespace std; int main() { string str1 = "I like "; string str2 = "string class"; string str3 = str1 + str2; // str1.operator+(str2) 연산..
[문과 코린이의 IT 기록장] C,C++ - 문자 (문자(char), 문자 배열, 문자열, Stirng) [문과 코린이의 IT 기록장] C,C++ - 문자 (문자(char), 문자 배열, 문자열, Stirng) 1. 문자(char) : 문자는 인간만이 가지는 특수한 인식 체계이다. 즉, 컴퓨터 내부에서 문자라는 것은 존재하지 않는다. 1) char : char변수는 1byte 정수(integer)이다. : 그러나, char 자료형이 정수일지라도, 일반 정소와는 다른 방식으로 사용한다. : 그래서, char 값을 정수로 해석하는 대신, ASCII code 문자로 해석한다. * ASCII란? ) American Standard Code for Information Interchange의 약자로, 영어 문자(+몇 개의 다른 기호)를, 0에서 127사이의 숫자(ASCII)코드로 나타낸다. 예를 들어, 'a'의 문자..
[문과 코린이의 IT 기록장] C,C++ - 함수 반환형 (Return by Value, Return by Address, Return by Reference) [문과 코린이의 IT 기록장] C,C++ - 함수 반환형 (Return by Value, Return by Address, Return by Reference) 기억할 사항 ) int a = 10; // Rvalue인 10을 복사해서, a에 저장한다. (이동하는게 아님) [ivalue와 rvalue] - lvalue : 단일 표현식 이후에도 없어지지 않고, 지속되는 객체. 즉, 이름을 가지는 객체 ex ) const타입을 포함한, 모든 변수는 lvalue라고 할 수 있음, ++x - Rvalue : 표현식이 종료된 후에는 더 이상 존재하지 않는 암시적인 값 ex ) 상수, 임시객체, x++ cf ) 둘 다 증가된 값을 리턴하지만, ++x는 증가된 x 자신을 리턴하기 때문에 lvalue인 반면에, x++는..
[문과 코린이의 IT 기록장] C,C++ - 가상(Virtual)의 원리와 다중상속 2 : 다중상속에 대한 이해 ( 다중상속에 대한 견해, 다중상속의 기본방법, 다중상속의 모호성, 가상 상속 ) [문과 코린이의 IT 기록장] C,C++ - 가상(Virtual)의 원리와 다중상속 2 : 다중상속에 대한 이해 ( 다중상속에 대한 견해, 다중상속의 기본방법, 다중상속의 모호성, 가상 상속 ) 1. 다중상속에 대한 견해 - 다중상속이란 둘 이상의 클래스를 동시에 상속한다는 것을 말한다. - 그러나, 다중상속은 꽤 논란이 발생하는 문법이다. 따라서, 다중상속을 매우 예외적으로, 제한적으로 사용할 필요가 있다. 2. 다중상속의 기본방법 ex ) #include using namespace std; class BaseOne{ public: void SimpleFuncOne() { cout
[문과 코린이의 IT 기록장] C,C++ - 가상(virtual)의 원리와 다중상속 1 : 맴버함수와 가상함수의 동작원리 (객체 안에 정말로 맴버함수가 존재하는가?, 가상함수의 동작원리와 가상함수 테이블) [문과 코린이의 IT 기록장] C,C++ - 가상(virtual)의 원리와 다중상속 1 : 맴버함수와 가상함수의 동작원리 (객체 안에 정말로 맴버함수가 존재하는가?, 가상함수의 동작원리와 가상함수 테이블) 1. 객체 안에 정말로 맴버함수가 존재하는가? - 지금까지는 객체 내에 맴버함수가 존재한다고 설명했었다. 그러나 실제로는 객체 외부에 존재한다. ex ) C언어(구조체 변수와 전역함수)를 이용해, C++(클래스와 객체)를 흉내내보기 ex ) 이 예제를 C언어 스타일로 만들어보자. #include using namespace std; // 클래스 Data를 흉내낸 영역 typedef struct Data{ // 함수 포인터 변수가 구조체의 맴버로 등장했다. int data; void (*ShowData)..

반응형