IT공부/IT서적 9

[윤성우 열혈 C++프로그래밍] Part4. 객체지향의 완성 - 2

** C++ 표준 라이브러리, string 클래스 : 문자열의 처리를 목적으로 정의된 클래스#include #include using namespace std;int main(void){ string str1 = "I like "; string str2 = "string class"; string str3 = str1 + str2; cout > str4; cout > 연산자 오버로딩 return 0;} ** string 클래스를 대체하는 String 클래스 만들기1) 분석   ① 문자열을 인자로 전달받는 생성자 정의   ② 생성자, 소멸자, 복사 생성자, 대입 연산자의 정의   ③ 결합된 문자열로 초기화된 객체를 반환하는 + 연산자의 오버로딩   ④ 문자열을 덧붙이는 += 연산자의 오버로딩   ⑤ 내용 ..

IT공부/IT서적 2024.09.24

[윤성우 열혈 C++프로그래밍] Part4. 객체지향의 완성 - 1

** 연산자 오버로딩 : 기존에 존재하던 연산자의 기본 기능 외에 다른 기능을 추가할 수 있음   ㄴ 연산자를 오버로딩 한 함수도 const 선언 가능 ** 연산자를 오버로딩 하는 두가지 방법1) 멤버함수에 의한 연산자 오버로딩#include using namespace std;class Point{private: int xPos, yPos;public: Point(int x = 0, int y = 0) : xPos(x), yPos(y) { } void ShowPosition() const { cout  2) 전역함수에 의한 연산자 오버로딩#include using namespace std;class Point{private: int xPos, yPos;public: Point(int x = 0, i..

IT공부/IT서적 2024.09.21

[윤성우 열혈 C++프로그래밍] Part3. 객체지향의 전개

** 기능의 처리를 실제로 담당하는 클래스를 가리켜 '컨트롤(control) 클래스' 또는 '핸들러(handler) 클래스'라 함 ** 상속(Inheritance)   [과거] 기존에 정의해 놓은 클래스의 재활용을 목적으로 만들어진 문법적 요소   [새로운 관점] UnivStudent 클래스가 Person 클래스를 상속한다는 전제                         UnivStudent 객체에는 UnivStudent 클래스에 선언되어 있는 멤버 뿐만 아니라                         Person 클래스에 선언되어 있는 멤버도 존재하게 됨#include using namespace std;class Person{private: int age; char name[50];public: ..

IT공부/IT서적 2024.09.14

[윤성우 열혈 C++프로그래밍] Part2. 객체지향의 도입

** 구조체 등장 이유? : 연관 있는 데이터를 하나로 묶으면, 프로그램의 구현 및 관리가 용이 1) C++은 구조체 안에 함수와 enum 상수의 사용이 가능함#include using namespace std;struct Car{ // 구조체 안에 enum 상수의 선언 enum { ID_LEN = 20, MAX_SPD = 200, FUEL_STEP = 2, ACC_STEP = 10, BRK_STEP = 10 }; // 구조체 변수의 선언 char gamerID[ID_LEN]; // 소유자 ID int fuelGauge; // 연료량 int curSpeed; // 현재속도 // 구조체 안에 ..

IT공부/IT서적 2024.08.15

[윤성우 열혈 C++프로그래밍] Part1. c++로의 전환

** C++ 에서 입력과 출력#include int main() { char name[100]; char lang[200]; std::cout>name; std::cout>lang; std::cout ** 함수 오버로딩(Function Overloading) : 전달되는 인자를 통해서 호출하고자 하는 함수의 구분   ① 매개변수의 자료형 또는 개수가 다름   ② 반환형이 달라도 호출되는 함수의 기준이 될 수 없으므로 불가능 int SUM(int num1, int num2){ return num1 + num2;}int SUM(double num1, double num2){ return num1 + num2;}int SUM(int num1, int num2, int nu..

IT공부/IT서적 2024.08.08

[윤성우 열혈 C프로그래밍] Part4. C언어의 깊은 이해

** 스트림(stream) : 프로그램상에서 모니터와 키보드를 대상으로 데이터를 입출력 하기 위해서는 이들을 연결시켜 주는 다리가 필요   →  이러한, 다리의 역할을 하는 매개체   [운영체제]에서 제공하는 소프트웨어적인 가상의 다리   [운영체제]는 외부장치와 프로그램과의 데이터 송수신의 도구가 되는 스트림을 제공         ㄴ 출력 스트림 : 실행중인 프로그램과 모니터를 연결 - (예) printf         ㄴ 입력 스트림 : 실행중인 프로그램과 키보드를 연결 - (예) scanf ** 콘솔(일반적으로 키보드와 모니터를 의미) 입출력과 파일 입출력 사이의 차이점 : 파일과의 연결을 위한 스트림 생성은 우리가 직접 요구해야하지만,   콘솔과의 연결을 위한 스트림의 생성은 요구할 필요 없음  ..

IT공부/IT서적 2024.07.28

[윤성우 열혈 C프로그래밍] Part3. 포인터와 배열의 완성

** 가로 행, 세로 열 ** 다차원 배열 : TYPE arr[세로길이][가로길이]; ** 2차원 배열도 메모리상에서는 1차원 형태로 존재            ▲ int arr [3][2]; ** 3차원 배열은 여러 개의 2차원 배열이 모여있는 형태 ** **(포인터의 포인터, 더블 포인터) : 포인터 변수를 가리키는 이중 포인터 변수 ** 포인터 변수 대상의 Call-by-referencevoid Swap (int* ptr1, int* ptr2){ int temp = *ptr1; *ptr1 = *ptr2; *ptr2 = temp;}▲  두 변수에 저장된 값 바꾸기 void Swap (int* p1, int* p2){ int* temp = p1; p1 = p2; p2 = ..

IT공부/IT서적 2024.07.24

[윤성우 열혈 C프로그래밍] Part2. 포인터 배열의 시작

** 배열의 이름을 대상으로 하는 sizeof 연산의 결과로는 바이트 단위의 배열 크기가 반환된다. ** 널(NULL) 문자의 아스키 코드 값은 0이다.   그리고 이를 문자의 형태로 출력할 경우, 아무런 출력이 발생하지  않는다. ** C 언어에서 표현하는 모든 문자열의 끝에는 널 문자가 자동으로 삽입된다. ** 메모리 상에서 문자열을 이진 데이터로 저장하기 때문에   문자열의 시작과 끝이 표시되어 있지 않다면, 문자열을 구분하는 것은 불가능 ** 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수   ㄴ 포인터변수 = 변수 형태의 포인터 + 상수 형태의 포인터 ** 포인터형(type) : 포인터  변수의 선언 및 구분에 사용 ** & : 피연산자의 주소값을 반환하는 연산자 ** *: 포인터가 가리키..

IT공부/IT서적 2024.07.19

[윤성우 열혈 C프로그래밍] Part1. C 언어의 기본

** 기본적으로 제공되는 함수를 표준함수라고 하고,   표준함수들의 모임을 가르켜 표준 라이브러리라고 함 ** 표준함수를 호출하기 위해서는 헤더파일을 선언해야 함 ** main 함수의 마지막에서 0을 전달(반환)하는 이유?   : 이 값은 main 함수를 호출한 영역으로 전달     main 함수는 프로그램이 시작되면 자동으로 호출되는 함수     호출의 주체는 Windows나 Linux와 같은 운영체제     ㄴ 그 값은 프로그램의 종료 상태를 알리는 용도로 사용     ㄴ 보통 0은 정상적인 종료 상황에서 전달하는 값     ㄴ 비정상적인 상황으로 인해서 종료될때에는 일반적으로 0이 아닌 값을 전달 ** 서식문자(conversiuon)    : 출력의 형태를 지정하는 용도로 사용 ** 연산자(oper..

IT공부/IT서적 2024.07.16