본문 바로가기

반응형

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

(163)
[문과 코린이의 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)..
[문과 코린이의 IT 기록장] C,C++ -상속과 다형성 3 : 가상 소멸자와 참조자의 참조 가능성 (가상 소멸자, 참조자의 참조 가능성) [문과 코린이의 IT 기록장] C,C++ -상속과 다형성 3 : 가상 소멸자와 참조자의 참조 가능성 (가상 소멸자, 참조자의 참조 가능성) 1. 가상 소멸자 - 가상함수 이외에도, virtual 키워드를 붙여줘야 할 대상이 있다. 바로 소멸자이다. - virtual로 선언된 소멸자를 가리켜, '가상 소멸자'라 한다. ex 1 ) 문제점 이해하기 #include #include using namespace std; class First{ // First 클래스 private: char * strOne; public: First(const char *str){ // First 생성자 strOne = new char[strlen(str)+1]; // 생성자 내부의 동적할당 } ~First(){ // First..
[문과 코린이의 IT 기록장] C,C++ - 상속과 다형성 2 : 가상함수 ( 기초 클래스의 포인터로 객체를 참조하기, 함수의 오버라이딩과 포인터 형, 가상함수(Virtual Function), 'OrangeMedia 급여관리 확장성 .. [문과 코린이의 IT 기록장] C,C++ - 상속과 다형성 2 : 가상함수 ( 기초 클래스의 포인터로 객체를 참조하기, 함수의 오버라이딩과 포인터 형, 가상함수(Virtual Function), 'OrangeMedia 급여관리 확장성 문제'의 주석 부분 해결, 순수 가상함수(Pure Virtual Function)와, 추상 클래스(Abstract Class), 다형성) 1. 기초 클래스의 포인터로 객체를 참조하기 ex 1 ) class Base{ public: void BaseFunc() { cout
[문과 코린이의 IT 기록장] C,C++ - 상속과 다형성 1 : 객체 포인터의 참조관계 (객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수, OrangeMedia 급여관리 확장성 문제의 1차적 해결과 함수 .. [문과 코린이의 IT 기록장] C,C++ - 상속과 다형성 1 : 객체 포인터의 참조관계 (객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수, OrangeMedia 급여관리 확장성 문제의 1차적 해결과 함수 오버라이딩) 1. 객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수 1) 객체 포인터 변수 이해 - 포인터 변수는 클래스를 기반으로도 작성될 수 있다. ex) Person : 클래스 이름 Person * ptr; // 포인터 변수 선언 ptr = new Person(); // 포인터 변수의 객체 참조 ( 위 문장이 실행되면, 포인터 변수 ptr은 Person 객체를 가리키게 된다. ) [ 여기서 꼭 알아야할 점 ] - Person형 포인터는 Person 객체뿐만 아니라, Pers..

반응형