본문 바로가기

반응형

코딩공부

(91)
[문과 코린이의 IT 기록장] C# - C# 기초 이해하기 (using System이란?, using static System.Console;, namespace _2021_03_02 { }, class MainApp { }, static void Main(string [] args) { }, CLR이란?) [문과 코린이의 IT 기록장] C# - C# 기초 이해하기 (using System이란?, using static System.Console;, namespace _2021_03_02 { }, class MainApp { }, static void Main(string [] args) { }, CLR이란?) ex ) using System; using static System.Console; namespace _2021_03_02 { class MainApp { // 프로그램 실행이 시작되는 곳 static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("사용법 2021_03_02.exe0
[문과 코린이의 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)의 원리와 다중상속 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++ - 상속과 다형성 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++ - 연산자 오버로딩 6 : new & delete 연산자 오버로딩 (new 연산자 오버로딩에 대한 상세한 이해, operator new & operator new[ ]) [문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 6 : new & delete 연산자 오버로딩 (new 연산자 오버로딩에 대한 상세한 이해, operator new & operator new[ ]) 1. new 연산자 오버로딩에 대한 상세한 이해 - new & delete 연산자 오버로딩은, 기존의 앞서 봤던 연산자 오버로딩과 많이 다르다. * new & delete 또한, 연산자이다. 따라서 연산자 오버로딩이 가능하다. 1) new 연산자가 하는 일 a. 메모리 공간의 할당 b. 생성자의 호출 c. 할당하고자 하는 자료형에 맞게 반환된, 주소 값의 형 변환 - 이와 같이, 객체의 생성과정은 다소 복잡한 과정을 거친다. - 그러나 이 중, 생성자의 호출과 반환된 주소값의 형변환은 컴파일러가 ..
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 4 : (cout, endl 오버로딩) [문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 4 : (cout, endl 오버로딩) 1. cout, endl 오버로딩 ex 1 ) #include namespace mystd { // cout과 endl을, 직접 구현하기 위해서 선언한 이름공간이다. using namespace std; // 이 선언은 namespace mystd 내에서, 지역적으로 이루어졌으니, 이 지역 내에서만 유효한 선언이 된다. class ostream { public: // operator
[문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 3 : 대입연산자 (대입연산자, 디폴트 대입 연산자의 문제점, 상속 구조에서의 대입 연산자 호출, 이니셜라이저) [문과 코린이의 IT 기록장] C,C++ - 연산자 오버로딩 3 : 대입연산자 (대입연산자, 디폴트 대입 연산자의 문제점, 상속 구조에서의 대입 연산자 호출, 이니셜라이저) 1. 대입연산자 1) 대입 연산자 오버로딩은, 복사 생성자와 매우 유사하다. [ 디폴트 대입 연산자 ] - 정의하지 않으면 디폴트 대입 연산자가 삽입된다. - 디폴트 대입 연산자는 맴버 대 맴버의 복사(얕은 복사)를 진행한다. - 연산자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야 한다. 2) 복사생성자 vs 대입연산자 : 호출되는 시점에서 차이가 존재한다. a. 복사생성자 호출 상황 int main(){ Point pos1(5,7); Point pos2 = pos1; // 새로 생성하는 객체 pos2의 ..

반응형