본문 바로가기

반응형

분류 전체보기

(297)
[문과 코린이의 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..
[문과 코린이의 IT 기록장] C,C++ - 상속 2 (protected로 선언된 맴버가 허용하는 접근의 범위, 3가지 형태의 상속, 상속을 위한 조건) [문과 코린이의 IT 기록장] C,C++ - 상속 2 (protected로 선언된 맴버가 허용하는 접근의 범위, 3가지 형태의 상속, 상속을 위한 조건) 1. protected로 선언된 맴버가 허용하는 접근의 범위 - C++의 접근 제어 지시자 (허용범위 좁음) private < protected < public (허용범위 넓음) ex ) class A{ private : // 클래스 내부에서 접근 가능 int num1; protected : // 클래스 내부에서 접근 가능 int num2; public : int num3; void ShowData(){ cout
[문과 코린이의 IT 기록장] C,C++ - 상속 1 (상속 공부 접근 방법, 문제의 제시, 상속의 문법적인 이해, 유도 클래스 객체 생성과정, 유도 클래스 객체의 소멸과정) [문과 코린이의 IT 기록장] C,C++ - 상속 1 (상속 공부 접근 방법, 문제의 제시, 상속의 문법적인 이해, 유도 클래스 객체 생성과정, 유도 클래스 객체의 소멸과정) [ 상속 공부 접근 방법 ] a. 문제의 제시 : 상속과 더불어 다형성의 개념을 적용해야만 해결 가능한 문제를 먼저 제시한다,. b. 기본개념 소개 : 상속의 문법적 요소를 하나씩 소개해 나간다. c. 문제의 해결 : 처음 제시한 문제를, 상속을 적용해 해결해 나간다. ex ) OrangeMedia라는 회사가 운영하는 '급여관리 시스템' - 이 회사에서는 기존에는 정규직(ermanent) 하나의 근무형태만 존재했음. #include using namespace std; class PermanentWorker { // 정규직 클래스 ..

반응형