목록코딩 공부/C++ (22)
기록장

line by line 으로 설명해보기 Node 클래스 class Node { int data;// 일반 변수 Node* link;// 포인터 변수 link public: Node(int val) { data = val; link = NULL; } Node* getLink() { return link; } void setLink(Node* next) { link = next; } void display() { cout getLink(); if (front = NULL) rear = NULL; return temp; } 큐의 삭제 연산이다. 삭제하면서 Node*형을 반환한다. 만약 큐가 비어있다면 공백 문자열(NULL)을 반환(return)한다. --> 함수 끝 아니라면 계속 진행 Node* 형의 포인터 ..
정적 메모리 할당 vs 동적 메모리 할당 선언 방법 int n = 20; // int arrN[i];// 오류 int arrN[20];// 가능 길이가 20인 배열을 정적으로만 할당할 수 있다. 따라서 대괄호 안에 변수를 넣으려면 정적변수(static)만 가능하다. 예를 들면 static int n = 20; int arrN[n]; 위 코드에선 n을 정적변수로 선언하고 배열에 사용이 가능하지만, n의 값을 변경할 수 없다 배열 선언과 제거 방법 int n; cin >> n;// n이 정적 변수가 아님을 뜻함 int* arrN = new int[n];// 동적 메모리 할당 arrN[3] = 20; delete[] arrN;// 동적 메모리 할당 제거 (크기 모두 제거) 포인터 변수(arrN)에 배열의 주소..

정수 변수 정수 저장 int a; 포인터 변수 주소 저장 int* p; 포인터 변수 선언 int* pi;// int 변수의 메모리 위치를 알려주는 포인터 pi선언 float *pf;// float 변수의 메모리 위치를 알려주는 포인터 pf선언 여러 개의 포인터 변수 선언 char* p, q, r;// p는 char* 변수, q와 r은 char 변수 char *p, *q, *r;// p, q, r 모두 char* 변수 * 사용하기 전에 반드시 초기화되어야 함 int *pi; pi는 정수 변수를 가리키는 포인터 float *pf; pf는 실수 변수를 가리키는 포인터 char *pc; pc는 문자 변수를 가리키는 포인터 test *ps; test 타입의 객체를 가리키는 포인터 void *p; p는 void t..

문제 설명 사용자가 후위연산을 입력받는다 ex) 4 9 * 결과가 출력된다 ex) 36 OperandStack.h 피연산자를 넣을 스택 class #pragma once // 피연산자 스택 클래스 #include #include using namespace std; const int MAX_STACK_SIZE = 20; inline void error(string message) { ::cout
: 문자열을 조작하고 처리하는 기능 - high-level : 문자열이 배열에 어떻게 저장되는지 알 필요 없이 클래스 사용법만 알면 된다. - 헤더파일 : #include C++ style string 클래스 string s = "Welcome to C++"; // 빈 문자열 객체 s 생성 후에 객체를 복사하는 방법 string s("Welcome to C++"); // 문자열 생성자를 사용하는 방법 string 클래스 함수 사용 C style string 문자열 char s1[] = "Welcome to C++"; // s1: 문자열 string s(s1); // s: 문자열 객체 string 배열에 직접 접근 (클래스가 아님) C++ style string class (C++ 스타일의 스트링 클래스)..

헤더파일 OperandStack.h #pragma once // 피연산자 스택 클래스 #include #include using namespace std; const int MAX_STACK_SIZE = 20; inline void error(string message) { cout

402p 실습 9.6번 문제 2차 방정식 ax^2 + bx + c = 0 에 대한 QuadraticEquation 이라는 클래스를 설계하여라 class 에서 - 세 개의 계수를 나타내는 a, b, c 데이터 필드 - a, b, c 를 인수로 갖는 생성자 - a, b, c 에 대한 세 개의 get 함수 (반환) - 판별식 b^2 - 4ac 를 반환하는 getDiscriminant() 함수 - 방정식의 두 근을 반환하는 함수 getRoot1() 와 getRoot2(). 근의 공식을 사용한다. 판별식이 음수가 아닐 경우에만 성립, 판별식이 음수인 경우 0을 반환 main함수에서 - 사용자로부터 a, b, c의 값을 입력받아 판별식에 근거한 결과를 화면에 출력 - 판별식이 양수일 경우 : 두 개의 근 출력 - ..

403p 실습 9.8번 문제 9.8 다음의 내용을 포함하는 Date 클래스를 설계하여라 class에서 - 날짜를 표시하는 year, month, day 데이터 필드 - 현재 날짜에 대한 Date 객체를 생성하는 인수 없는 생성자 - 1970년 1월 1일 자정부터 지금까지의 경과 시간을 초로 나타내는 Date객체를 생성하는 생성자 - year, month, day 데이터 필드에 대한 세 개의 get 함수 - 경과 시간을 사용하여 객체에 대한 새로운 날짜를 설정하는 setDate(int elapseTime) 함수 main에서 - 인수없는 생성자 객체 생성 - Date(555550)를 사용하는 객체 생성 - 연, 월, 일을 화면에 출력 UML 다이어그램 코드 #include #include using name..
#include using namespace std; void turnOn(bool & on) { on = true; } void turnOff(bool & on) { on = false; } void setChannel(bool & on, int & channel, int & newChannel) { if (on && newChannel >= 1 && newChannel = 1 && newVolumeLevel 1) channel--; } void volumeUp(bool & on, int & volumeLevel) { if (on && volumeLevel < 7) volumeLevel++; } void volumeDown(bool & on, int & volumeLevel) { if (on && vo..
#include #include #define MAX_DEGREE 80 class Polynomial { int degree; float coef[MAX_DEGREE]; public: Polynomial() { degree = 0; coef[MAX_DEGREE] = 0; } // 다항식의 내용을 입력받는 멤버함수 void read() { printf("다항식의 최고 차수를 입력하시오: "); scanf_s("%d", °ree); printf("각 항의 계수를 입력하시오 (총 %d개): ", degree + 1); for (int i = 0; i b.degree) { *this = a; for (int i = 0; i