썸네일 Template 과 Generic 그리고 C++ STL //template MyStack::MyStack() { tos = -1; } 1. 단순 함수 오버로딩 #include using namespace std; void myswap(int& a, int& b) { int tmp; tmp = a; a = b; b = tmp; } void myswap(double& a, double& b) { double tmp; tmp = a; a = b; b = tmp; } int main() { int a = 4, b = 5; myswap(a, b); cout
썸네일 연산자 재정의 함수의 구현 위치에 대하여. C++을 가지고 짧막한 실습을 하다가 문득 궁금해졌다. 연산자 재정의 함수를 클래스의 friend 함수로 선언하고, 도대체 어디서 정의해야할까? .h .cpp 로 나뉘어진 클래스 작성에 익숙치않아 기초적인 것에 꽤나 머리를 싸멨다. 알아보자. 문제의 구현 방식. 오류를 해결하기 위해, operator
썸네일 [C++] 파일 입출력 파일의 종류 파일의 종류에는 텍스트 파일과 바이너리 파일 두가지가 있다. 텍스트파일 : 내용이 텍스트, 문자만으로 작성된 파일. 메모장 파일 , 소스 코드, xml문서 등. 바이너리 파일 : 파일 내용을 텍스트만으로 표현 불가. mp3, jpeg, hwp, obj, exe 등 컴파일된 코드나 실행 파일. C++ 표준 파입 입출력 일반적으로 파일입출력을 위해선 라이브러리 이용한다. 파일 입출력 모드 fsream은 텍스트 I/O와 바이너리 I/O 방식을 모두 지원 텍스트 I/O : 문자 단위로 파일 읽기/쓰기 바이너리 I/O : 바이트 단위 파일 읽기/쓰기, 바이너리 I/O 방식으로 텍스트 파일의 입출력 사용 가능 파일 입출력 스트림은 프로그램과 파일을 연결시켜준다. 파일 입력: ">>" 연산자, get()..
썸네일 [C++] 입출력 시스템 C++에 포맷 입출력은 3가지 방법이 존재한다. 1. 포맷 플래그 2. 포맷 함수 3. 조작자 포맷 플래그 ios 클래스에는 포맷 플래그 값을 가진 멤버 변수가 있다. 이 멤버 변수를 이용하여 입출력의 포맷을 수정할 수 있다. 포맷 플래그 값을 가진 멤버 변수를 수정하기 위해서는, set과 unset 메서드를 사용해야 한다. #include using namespace std; int main() { cout
(수정필요)[C++] 가상함수와 추상클래스 함수의 단순 재정의 #include using namespace std; class Base { public: void f() { cout
[c++] while, for 반복문 안에 srand, rand에 대해서 srand와 rand는 랜덤값을 반환하기 위한 함수로, C++에서는 C언어의 라이브러리인 를 가져와 사용한다. 일반적으로 rand함수를 사용하게 될 경우, 매 실행 결과에서의 rand값이 동일하게 나온다. C를 공부한 사람이라면 이것이 seed가 동일하기 때문에 발생하는 문제라는 것을 알 것이다. (seed==1) 매 실행마다 랜덤값을 얻기위해, 우리는 srand 함수를 사용해 매 초마다 seed를 변경해준다. 이와 같은 방법은 매 실행 시 seed값을 변경해주므로, 난수생성이 어려운 초보자들에게 매우 효과적이다. 다만, 사용시 주의해야할 점이 있는데, srand와 rand 함수를 같이 while이나 for문같은 반복문에서 실행하면 안 된다. 그렇게되면 매 실행 시, 나오는 랜덤값이 동일함은 물론이고, ..