일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동영상
- 충남 천안
- 언제나 휴일
- c언어
- 언제나휴일
- 원격 제어 프로그램
- C++
- 독립기념관
- 실습으로 다지는 c#
- 안드로이드 앱 개발
- 무료 동영상 강의
- 네트워크 프로그래밍
- 표준 라이브러리 함수
- 소스 코드
- 프로젝트
- 캡슐화
- 알고리즘
- 졸업 작품 소재
- 클래스 다이어그램
- 표준 입출력
- 실습
- 소켓 통신
- 산책하기 좋은 곳
- Windows Forms
- 유튜브 동영상 강의
- 파이썬
- 강의
- 추천
- 동영상 강의
- c#
- Today
- Total
목록2024/04 (69)
프로그래밍 언어 및 기술 [언제나휴일]
[C++] 14. 캡슐화 개요 이제 C++언어에서 캡슐화에 관한 사항을 알아보기로 해요. 캡슐화는 여러 개의 멤버를 하나의 형식으로 묶는 과정을 말합니다. C언어에서는 구조체를 이용하여 캡슐화를 했었죠. C++언어에서도 구조체를 이용하여 캡슐화를 할 수 있습니다. 하지만 일반적으로 클래스를 이용하여 캡슐화를 할 때가 대부분입니다. 먼저 C언어에서의 캡슐화와 C++언어에서의 캡슐화의 차이를 간단하게 알아볼게요. C언어에서 구조체에는 데이터만 멤버 필드(멤버 변수)로 캡슐화할 수 있었죠. 하지만 C++에서는 기능도 멤버 메서드로 캡슐화를 할 수 있습니다. 그리고 C언어에서는 캡슐화한 멤버를 모든 곳에서 접근할 수 있지만 C++언어에서는 구조체에 접근 지정자를 사용하여 가시성을 설정할 수 있습니다. 그리고 앞..
[C++] OOP 개요 이제 C++언어가 갖는 주요 특징인 OOP(Object Oriented Programming, 개체(객체) 지향 프로그래밍)에 관한 사항을 다루기 시작할게요. 특히 OOP에 관한 특징들은 클래스 문법을 통해 다룰거예요. OOP란 프로그램의 세계에 현실 세계를 반영하자는 것에서 출발했어요. 우리가 사는 현실 세계는 수 많은 생명체들이 메시지를 서로 주고 받으면 살아가고 있어요. 이처럼 프로그램도 개체들이 서로 메시지를 주고 받으며 동작하게 하자는 것이죠. 그런데 프로그램에서는 개체를 만들기 위해서는 먼저 형식 정의가 필요해요. 현실 세계에서는 사람이나 호랑이, 음악가, 학생처럼 추상적인 개념을 정의하고 있죠. 마찬가지로 프로그램에서도 형식을 정의할 수 있는데 C++언어와 Java, ..
[C++] 논리 형식 bool , string 형식 개요 11. 논리 형식 bool 제공 C언어에서는 논리 형식을 제공하지 않아요. 대신 0은 거짓으로 취급하고 0 이외의 것은 참으로 판별하죠. 그리고 연산 결과가 거짓이면 0, 참이면 1이었어요. C++언어에서는 높은 가독성과 신뢰성을 높이기 위해 논리 형식 bool을 제공하고 있어요. bool 형식 변수에는 값으로 true와 false를 사용할 수 있어요. 하지만 C++언어에서는 여전히 0은 거짓으로 취급하고 0 이외의 것은 참으로 판별하고 있습니다. //논리 형식 bool 사용 #include using namespace std; bool IsEvenNumber(int num); void main() { bool check = false; int n..
[C++] 10. 신뢰성 강화(열거형) C++언어는 C언어보다 자료 형식에 관한 부분에서 신뢰성을 강화하고 있어요. 먼저 C언어에서는 열거형 변수에 정수 형식을 대입하거나 초기화를 하는 것이 가능합니다. //C언어에서의 열거형 사용 //Program.c #include enum Gender { FEMALE, MALE }; int main() { enum Gender g = 3;//C언어에서는 열거형 변수에 정수형을 대입 및 초기화 가능 printf("g is %d\n",g); return 0; } ▷ 실행 결과 g is 3 하지만 C++에서는 열거형 변수에 정수 형식을 대입하거나 초기화할 수 없어요. 다음은 열거형 변수에 정수를 대입하였을 때 컴파일 오류가 발생하는 예제 코드예요. //신뢰성 강화 - 열..
[C++] 9. 레퍼런스 변수 C++언어에서 변수 선언문에서 &를 사용하는 참조 변수 선언을 제공하고 있습니다. 참조 변수는 별도의 메모리를 할당하지 않고 변수 선언문에서 초기화에 사용한 변수의 메모리를 참조하여 사용합니다. #include using namespace std; int main() { int i =0; int &r = i; //r은 i변수를 참조 r = 9; //i=9;와 같은 결과(r 변수는 i변수를 참조) cout
namespace DemoA { struct Stack { int top; }; } namespace DemoB { struct Stack //이미 앞에서 같은 이름으로 정의하고 있음 { int last; }; } [C++] 이름 출동을 방지하는 namespace C++언어는 이미 만들어진 지 30여년이 지났습니다. 이러한 역사 속에서 처음에는 없었던 문법이 새롭게 추가한 것들도 있습니다. 이렇게 새롭게 추가한 문법 중의 하나가 namespace죠. 이미 앞에서 cin과 cout을 사용하기 위해 using namespace std; 문을 사용했었죠. 여기에서 namespace 문법을 다루고 나면 왜 이러한 구문을 사용하였는지를 알 수 있을 거예요. namespace는 같은 이름을 충돌하지 않게 하는 문..
[C++] 6. 디폴트 매개 변수 6. 디폴트 매개 변수 C++언어에서는 함수 입력 매개 변수 중에 디폴트 값을 설정할 수 있습니다. 이러한 디폴트 매개 변수는 대부분 같은 값을 전달할 때 호출하는 곳에서 인자를 전달하지 않아도 사용할 수 있게 해 줍니다. 만약 호의 면적을 구하는 함수에 반지름과 각도를 입력 매개 변수로 받게 하였을 때 각도의 디폴트 값을 2*PI로 설정한다고 가정할게요. 이와 같이 정의하면 호출할 때 반지름만 전달하면 각도는 디폴트 값을 사용하여 계산합니다. 물론 호출하는 곳에서 원하는 각도를 전달할 수도 있어요. //디폴트 매개 변수 //Program.cpp #include using namespace std; double CalculateArea(double radius, doub..
[C++] 5. 함수 중복 정의 (FUNCTION OVERLOADING) C언어에서는 같은 이름을 갖는 함수를 정의할 수가 없죠. 하지만 C++언어에서는 같은 이름을 갖는 함수를 정의할 수 있어요. 이와 같은 문법을 함수 중복 정의 (Function Overloading)라고 불러요. C++에서는 개발자가 정의한 코드를 컴파일 과정에서도 전개합니다. 함수 중복 정의가 대표적인 컴파일 과정에 전개하는 문법이예요. C++컴파일러는 개발자가 정의한 함수 명을 입력 매개 변수 리스트에 따라 유일한 이름의 함수 명으로 결정하는 함수 코드화(부호화) 과정이 있어요. 이러한 컴파일 전개가 있어서 같은 이름의 함수를 정할 수 있어요. 예를 들어 두 개의 정수 중에 최대값을 찾는 함수 명이 GetMax라고 정의했을 때 ..
[C++] 태그 명을 형식 명으로 사용 C++언어에서는 신뢰성에 문제가 되지 않는 범위에서 사용자에게 많은 편의성을 제공하고 있어요. 특히 태그 명을 형식 명으로 사용할 수 있어서 변수 선언에 태그 명을 사용할 필요가 없어요. 태그 명은 구조체, 공용체, 열거형을 정의할 때 사용하는 struct, union, enum 과 같은 키워드예요. C언어에서는 태그 명을 형식 명으로 사용할 수 없어서 struct, union, enum 같은 키워드도 같이 사용해서 변수를 선언해야 하죠. 이러한 불편함을 덜기 위해 typedef 문을 통해 형식 명을 정의해서 사용했어요. 하지만 C++에서는 태그 명을 그대로 형식 명으로 사용할 수 있어요. //태그 명을 형식 명으로 사용 //Program.cpp #include u..