맨 왼쪽에 있는 값을 pivot으로 정하고 , pivot보다 작은 값은 pivot의 왼쪽, pivot 보다 큰 값은 pivot의 오른쪽에 정렬한다. 그다음에 pivot의 왼쪽과 오른쪽을 다시 quick sort를 이용해 다시 호출해 준다. template void QuickSort(T* a, const int left, const int right){ if (left pivot); // 우측에 있어서 안되는 값 if (i < j) swap(a[i], a[j]); // 이..
class MyString { private: char *pBuf; public: MyString(const char *s = NULL); // 오류가 나지 않음 MyString(char *s = NULL); // 오류! }; int main() { MyString str1("Hello"); } const를 쓰면 *s 가 가리키는 값을 바꿀수 없다. c++에서 "Hello"는 변하지 않는 상수이다. 그래서 const를 써서 값을 고정시켜 줘야 한다. 만약 입력값이 변수라면 cosnt를 쓰지 않아도 된다.
참조변수는 이미 선언된 변수에 대한 별명이다. 참조 변수의 선언 int n= 2; int &refn = n; Circle circle1; Circle &refc = circle1; 참조 변수를 선언하기 위해서는 &연산자를 사용하며, 선언시 반드시 초기화 해야한다. 참조변수의 사용 int n= 2; int &refn = n; n=5; // n=5 ,refn=5 refn ++ ; // n=6, refn=6 참조 변수와 변수는 같은 공간을 공유하기 때문에 참조변수의 사용은 곧 원본 변수의 사용이다.
new 와 delete 연산자를 이용하여 동적 메모리를 할당한다. 힙(heap)은시스템 공간의 메모리를 의미한다. new 와 delete를 이용한 메모리의 할당. int *pInt = new int; //데이터 타입 *포인터 변수 = new 데이터 타입 char *pChar = new char; Circle *pCircle = new Circle(); // ()가 붙는다 delete pInt; delete pChar; delete pCircle; new: 데이터 타입의 크기만큼 힙에서 메모리를 할당받고 주소를 리턴 delete: 포인터 변수가 가리키는 메모리를 힙으로 반환 ※힙의 메모리가 부족하면 new 는 NULL을 리턴한다. 메모리 할당 할 때의 초기값 int *pInt = new int(10); c..
#include using namespace std; class Adder { int op1, op2; public: Adder(int a, int b); int process(); }; Adder::Adder(int a, int b) { op1 = a; op2 = b; } int Adder::process() { return op1 + op2; } class Calculator { public: void run(); }; void Calculator::run() { cout > a >> b; Adder adder(a, b); cout > a >> b; Adder adder(a, b); cout