C 프로그램으로 학생 정보를 입력하고 출력하는 문제를 생각해 보자. 학생 정보는 이름, 학년, 점수 세 개로 이루어져 있다. #include #include #include void main() { FILE *fp = NULL; char names[50][10]; int years[50]; int scores[50][3]; int count = 0; int i, j; fopen_s(&fp, "student.txt", "r"); if (fp == NULL) { printf("파일 열기 실패 - %s\n", "student.txt"); system("pause"); system("exit"); } while (!feof(fp)) { fscanf_s(fp, "%s", names[count], 10); fsca..
메뉴를 읽어 음료 정보를 출력하고 검색하는 프로그램이다. 실행화면은 다음과 같다. 검색은 여러 개의 키워드에 모두 매치되는 것만 출력한다. (1) Drink.h 음료 클래스 Drink의 헤더 파일 #pragma once #include #include #include #include using namespace std; class Drink { // Co1 카페_아메리카노 Short 3.6 string code; string name; string size; int price; public: int salesCnt; void read(ifstream& fin); void print(); bool matches(string kwd); int getPrice() { return price; } string ..
다음은 자바 코드를 C++로 바꾸는 과정을 보여줍니다. 이 프로그램은 Item 클래스를 이용해서 제품을 나타내고 Store 클래스는 그것을 이용해서 제품 데이터를 읽어들이고 출력한 후 주문을 받아 주문 내역을 출력합니다. 그리고 주문이 끝나면 그날의 매출 통계를 출력해 줍니다. 먼저 입출력의 형식을 살펴봅시다. 입력은 상품의 개수와 상품별로 이름, 가격, 종류(성별)이 나옵니다. 이것을 출력할 때는 상품의 고유번호를 보여주고 이름, 종류, 가격 순으로 보기 좋게 출력합니다. 11 후드티_ST1 5000 f 후드티_ST2 10000 c 면티_ST1__ 5000 f 면티_ST2__ 10000 f 면티_ST3__ 8800 c 치마_주름_롱 10000 f 치마_주름_숏 8000 f 반바지_청_숏 12000 f ..
C++이 자바와 가장 크게 달라지는 부분이 객체의 생성과 사용에서 객체 변수를 이용할 때이다. 자바는 모든 클래스 타입의 변수는 반드시 참조를 가진다. 또한 참조되는 객체는 항상 힙 메모리에 존재한다. 이것은 스택 영역의 관리와 메모리 가비지컬렉션을 쉽게 해주지만 대신 객체를 사용할 때 항상 간접접근(참조를 한번 읽어오고 해당 객체를 또 읽어와야 되는 이중 로드)해야 하는 문제가 생긴다. 이것은 상당한 성능 상의 부담을 가져온다. C++은 성능을 최적화하기 위해 (또 C의 구조체의 개념을 그대로 가져왔기 때문이기도 하다) 언제든 객체 변수를 선언할 수 있다. 예를 들어 Student 클래스에 대해 다음의 지역변수 선언은 객체를 스택 영역에 하나 생성하고 st라는 이름으로 그 객체를 나타낸다. (이것은 자..
C++의 큰 특징 중 하나로 참조형을 들 수 있다. 이것은 C와도 다르고 자바와도 다른 상당히 독창적인 기능을 제공한다. 참조형은 객체의 매개변수 전달이나 반환형 등에서 강력한 기능을 제공하여 C++의 세련된 코드를 가능하게 한다. 먼저 참조형이 무엇인지 살펴보자. 참조형이란 포인터와 비슷하게 뭔가를 가리키는 변수를 선언할 수 있게 해준다. 자바의 객체 참조 변수와 비슷한데 C++의 참조형은 포인터가 그렇듯이 기본 타입도 가리킬 수 있다. 또한 그 변수에 할당된 공간을 바로 가리켜서 자바와는 다른 용법으로 사용된다. int a; int& aRef = a; int* aptr = &a; aptr와 같이 aRef는 a에 할당된 공간을 가리킨다. 그렇지만 초기화할 때 aRef는 a 그 자체를 참조하는 것처럼 지..
C++은 cout
C++ 프로그램은 사실 C 프로그램과 다를 바 없다. 그냥 확장자를 cpp로 바꾸어 C 프로그램 그대로 C++ 프로그램이라고 해도 컴파일이 잘 된다. 그러나 C++ 프로그램다우려면 클래스가 필요하다. 여기서는 간단한 클래스 프로그램을 한번 만들어보겠다. C++ 프로그램은 C처럼 파일 안에 전역변수와 함수가 나올 수 있고 반드시 main() 함수를 가져야 한다. 또한 클래스 선언부가 나올 수 있다. 다음과 같이 하나의 파일에 모두 모여있다면 자바와 비슷하게 생긴 클래스가 나오고 그것을 사용하는 main 함수가 나오게 된다. 여기서 주의할 점은 class 선언부 뒤에 ;(세미콜론)이 있어야 한다는 점이다. 그런데 좀 이상한 일이지만 void read() { ... } 다음에는 세미콜론이 필요하지 않다. 이것..
C++ 언어를 배워야 할 일이 가끔 생깁니다. 취업 준비를 위해서나 C/C++ 환경이 필요한 일을 할 때가 있겠지요? 좋은 소식은 C와 자바를 할 줄 안다면 C++ 배우는 것은 그리 큰 일은 아니라는 것입니다. 물론 깊이 들어가면 많이 다르고 어려워지지만 가볍게 할 줄 아는 정도라면 며칠이면 배울 수 있습니다. 당신의 언어 툴박스에 C++을 추가해 보는 것이 어떨지요? 자 이제 시작합시다. C++은 C에다 객체지향 기능을 추가한 언어입니다. 그래서 진지하게 이 언어를 제대로 배우려면 사실 C 전부에다가 그 정도 양을 더 공부해야 할 정도로 크고 복잡한 언어입니다. 그러나 C를 이미 알고 자바의 객체 지향도 안다면 다행히도 간단히 해볼 수 있는 지름길이 있습니다. C++은 C와 자바가 갖지 않은 새로운 개..
- Total
- Today
- Yesterday
- rust
- format
- comparable
- 동적바인딩
- APPEND
- Lazy evaluation
- follow
- 자바regex
- typedef
- contains
- Iterator
- CompareTo
- 지연계산
- 이터레이터
- TypeError
- sort key
- contentEquals
- zip
- Camel Style
- 패턴
- 스트링
- max
- 스트링 +
- python exercise
- indexof
- ToString
- 콜렉션
- python example
- C++ 클래스
- 이터러블
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |