본문 바로가기

Programing

(39)
[C++] C++와 표준 라이브러리 초단기 속성코스(연산자, 타입, 구조체) 출저 : 책, 전문가를 위한 C++ 변수이 값을 변경 할수 없다면 변수를 사용할 이유가 없다. 다음 표는 C++에서 변수값 변경 용도로 가장 흔히 사용되는 연산자와 사용예를 보여주고 있다. C++연산자는 이항(바이너리) 연산자, 단항(유너리) 연산자, 삼항(터너리) 연산자로 분류 할 수 있다. 다음 코드는 가장 자주 사용 되는 변수 타입과 연산자를 사용하는 예를 보여주고 있다. #include using namespace std; int main() { int someInteger = 256; short someShort; long someLong; float someFloat; double someDouble; someInteger++; // 257 someInteger *= 2; // 514 some..
[C++] C++와 표준 라이브러리 초단기 속성코스(리터럴(literal) & 변수) 출저 : 책, 전문가를 위한 C++ 리터럴(literal)은 표시한 숫자나 스트링과 같은 값을 의미한다. C++는 다양한 표준 라이브러리를 제공한다. 숫자(123)는 다음과 같은 리터럴로 표현 할 수 있다. 십진수 리터럴 : 123 8진수 리터럴 : 0173 16진수 리터럴 : 0x7B 이진수 리터럴 : 0b1111011 부동 소수 값 (예, 3.14f) 배정도 부동 소수점 값(예, 3.14) 단일 문자(예 : 'a') '0'으로 끝나는 문자 배열(예 : "character array") 숫자 리터럴에서는 자릿수 구분자를 사용 할 수 있다. 자릿수 구분자는 작은 따옴표로 표현한다. 23'456'789 0.123'456f 변수는 코드 안 어디에서나 선언할 수 있으며, 현재 블록 안에서 변수를 선언한 줄 다..
[C++] C++ 기초(주석, 전처리 지시자, main()함수, I/O Stream) 프로그래밍언어의 공식 예제 "Hello, World' 간단한 C++코드를 살펴보자 이코드를 실행하면 화면에 'Hello World'란 메시지를 출현한다. 여기에 C++형식에 대한 다음과 같은 중요한 개념이 담겨 있다. 1) 주석 2) 전처리 지시자 3) main() 함수 4) I/O 스트림 // helloworld.cpp #include int main() { std::cout
[C++] 정적 결합, 동적 결합 Summary) 정적 결합 : 가리키고 있는 타입이 아니라 스스로, 변수(객체)의 타입만 보고 어떤 함수로 갈지를 결정 한 것이다. 이렇게 객체의 타입만 보고 가는 것을 정적 결합이라고 한다. 다시 얘기하면 컴파일 타임에 어떤 것을 호출할지 이미 결정하는 것을 정적 결합 예 ) 함수 오버로딩 동적 결합 런타임 바인딩, 즉 런타임 도중에 타입이 결정되는 것을 동적 바인딩이라고 한다. 예 ) 함수 오버라이딩 오버로딩에 대해 알아보자. #include using namespace std; class A { public: int num; }; class B : public A { }; A operator+(const A& x, const A& y) { A a; a.num = x.num + y.num; retur..
[C++] 클래스 템플릿 *C++ 열혈 프로그래밍 참조 (윤성우 저) 1) 클래스 템플릿 앞서 함수를 템플릿으로 정의 했듯이 클래스도 템플릿으로 정의가 가능하다. 그리고 이렇게 정의된 템플릿을 가리켜 '클래스 템플릿'이라 하며, 이를 기반으로 컴파일러가 만들어내는 클래스를 가리켜 '템플릿 클래스' 라고 한다. 클래스 템플릿의 장점은 제공되는 기능과 내부의 행동이 모두 동일한데, 저장의 대상이 다르다는 이유로 클래스를 여러개 정의하는 것을 1개로 정의하게 모두 구현 하게 할수 있다. 예제를 들어보겠다. #include using namespace std; template class Point { private: T xpos, ypos; public: Point( T x= 0, T y = 0) : xpos(x), ypos(y) { ..
[C++] 템플릿(Template) - 2 *C++ 열혈 프로그래밍 참조 (윤성우 저) 템플릿의 함수의 특수화를 다뤄 보겠다. 먼저 예제부터 들겠다. #include using namespace std; template T Max(T a, T b) { return a > b ? a : b; } int main() { cout
[C++] 가상 함수(상속) 오늘은 상속 중에서도 가상 함수에 대해서 공부를 하였다. 바로 예제로 넘어가자 #include using namespace std; class Base { public: void func() { cout
[C++] 템플릿(Template) - 1 *C++ 열혈 프로그래밍 참조 (윤성우 저) 템플릿(Template)에 대한 이해와 함수 템플릿 - 템플릿 : 모형자 라는 뜻이 담겨 있음. - 1) 모형자(템플릿) 특징 : 모형을 만들어낸다. 모형의 틀언 결정되어 있지만, 모형의 색은 결정해야 된다. - 2) 함수 템플릿 : 함수를 만들어 낸다. 함수의 기능은 결정 되어 있지만 자료형은 결정되어 있지 않아서 결정 해야된다. 즉 함수 템플릿은 함수를 만드는 도구가 된다. 예제를 통해서 같이 확인해 보자 #include using namespace std; // 함수 템플릿 정의 template // type name을 대신해서 class를 사용할수도 있다. T Add(T num1, T num2) { return num1 + num2; } int main..