반응형

언어 자료구조 알고리즘/디딤돌 C++ 87

7. 매개 변수 이름이 없는 스텁 매개 변수

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 매개 변수 이름이 없는 스텁(Stub) 매개 변수를 알아보기로 해요. C++에서 함수 중복 정의가 가능한 것은 이미 앞에서 다뤘어요. C++에서는 입력 인자로 전달 받아야 할 형식 인자가 같은 두 개의 함수의 이름을 중복 정의할 수 없을 때 두 개의 함수를 구분하기 위한 목적으로 스텁 매개 변수를 정할 수 있어요. 스텁 매개 변수는 입력 매개 변수 형식은 결정하였지만 변수 이름이 없는 매개 변수예요. 단순히 호출하는 곳에서 어느 함수를 호출하는 것인지 구분하기 위한 목적으로 사용하는 것이예요. 예를 들어 사각형의 면적을 구하는 함수와 삼각형의 면적을 구하는 함수를 만든다고 가정해요. 이 때 두 개의 함수는 모두 두 개의 실수를 인자를 받으면 면적을 구할 수 ..

6. 디폴트 매개 변수

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 디폴트 매개 변수를 알아보아요. C++언어에서는 함수 입력 매개 변수 중에 디폴트 값을 설정할 수 있습니다. 이러한 디폴트 매개 변수는 대부분 같은 값을 전달할 때 호출하는 곳에서 인자를 전달하지 않아도 사용할 수 있게 해 줍니다. 만약 호의 면적을 구하는 함수에 반지름과 각도를 입력 매개 변수로 받게 하였을 때 각도의 디폴트 값을 2*PI로 설정한다고 가정할게요. 이와 같이 정의하면 호출할 때 반지름만 전달하면 각도는 디폴트 값을 사용하여 계산합니다. 물론 호출하는 곳에서 원하는 각도를 전달할 수도 있어요. //디폴트 매개 변수 //Program.cpp #include using namespace std; double CalculateArea(double ..

5. 함수 중복 정의(Function Overloading)

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 같은 이름을 중복 정의할 수 있게 하는 함수 중복 정의(Function Overloading)을 알아보기로 해요. C언어에서는 같은 이름을 갖는 함수를 정의할 수가 없죠. 하지만 C++언어에서는 같은 이름을 갖는 함수를 정의할 수 있어요. 이와 같은 문법을 함수 중복 정의(Function Overloading)라고 불러요. C++에서는 개발자가 정의한 코드를 컴파일 과정에서도 전개합니다. 함수 중복 정의가 대표적인 컴파일 과정에 전개하는 문법이예요. C++컴파일러는 개발자가 정의한 함수 명을 입력 매개 변수 리스트에 따라 유일한 이름의 함수 명으로 결정하는 함수 코드화(부호화) 과정이 있어요. 이러한 컴파일 전개가 있어서 같은 이름의 함수를 정할 수 있어요...

4. 태그 명을 형식 명으로 사용

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 C++언어에서 제공하는 편의성 중에 태그 명을 형식 명으로 사용하는 것을 알아보아요. C++언어에서는 신뢰성에 문제가 되지 않는 범위에서 사용자에게 많은 편의성을 제공하고 있어요. 특히 태그 명을 형식 명으로 사용할 수 있어서 변수 선언에 태그 명을 사용할 필요가 없어요. 태그 명은 구조체, 공용체, 열거형을 정의할 때 사용하는 struct, union, enum 과 같은 키워드예요. C언어에서는 태그 명을 형식 명으로 사용할 수 없어서 struct, union, enum 같은 키워드도 같이 사용해서 변수를 선언해야 하죠. 이러한 불편함을 덜기 위해 typedef 문을 통해 형식 명을 정의해서 사용했어요. 하지만 C++에서는 태그 명을 그대로 형식 명으로 사..

3. 입출력 개요 (cin, cout)

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 C++ 학습할 때 기본으로 필요한 입출력에 사용할 cin과 cout을 사용하는 기본적인 방법을 알아보아요. 여기에서는 앞으로 C++ 문법 학습하기 위해 필수적으로 사용할 입출력에 관한 사항을 간략하게 살펴보기로 할게요. C언어에서는 stdio.h 파일을 포함하여 표준 입출력 함수들을 사용했었죠. C++에서도 C언어에서 제공하는 함수들을 사용할 수 있어요. 하지만 C++언어에서 콘솔 화면에 출력하거나 키보드에서 입력받을 때 printf 함수나 scanf 함수를 사용하는 이들은 거의 없어요. C++ 언어에서는 iostream 파일을 포함하여 cout과 cin 개체를 사용할 수 있어요. iostream은 STL(Standard Template Library,표준 ..

2. C++ 언어 소개 및 책의 기술 범위

안녕하세요. 언제나 휴일, 언휴예요. 이번에는 C++언어 소개와 함께 책에서 다루는 내용을 소개할게요. C++ 강의를 시작하거나 C언어가 끝나갈 때에 많은 이들이 "C++이 뭐예요? ", "C++언어는 C와 뭐가 달라요?" 라는 질문을 하더군요. 처음 강의를 했던 때에는 "C언어는 절차식으로 작성하기 적합한 프로그래밍 언어이고 C++언어는 OOP(Object Oriented Programming, 개체(객체)지향 프로그래밍)에 적합한 언어야."라고 대답이나 "글쎄, 기본 문법은 비슷한데 클래스 문법이 있어서 실제 프로그래밍 방식은 많이 다루지." 등의 대답을 했던 것 같아요. 그리고 점점 강의를 하다 보니 지금은 "C++ is a c with class."라는 얘기를 먼저 해요. 이렇게 얘기를 하는 이유..

1. 들어가기에 앞서

안녕하세요. 언제나 휴일, 언휴예요. 이제 언휴와 함께 C++ 문법과 OOP(Object Oriented Programming)과 설계를 학습해 보세요. 이 책은 C언어를 학습한 이들을 이가 C++언어를 학습하기 위해 작성하였습니다. C++언어는 C언어와 변수나 연산, 함수 등의 기본 문법은 비슷하지만 클래스와 템플릿 문법을 있습니다. 특히 C++ 언어에서 클래스는 OOP(Object Oriented Programming, 개체(혹은 객체) 지향 프로그래밍) 방식으로 프로그래밍할 수 있게 새롭게 추가한 문법이죠. 이러한 특징으로 인해 C언어와 C++은 접근 방식에서 많은 차이를 갖고 있습니다. 이 책은 C++입문자를 위한 책이지만 단순히 C++문법을 다루고 있는 책은 아니예요. 오히려 C++에 새롭게 추..

반응형