A. C++ 언어 개요
1. C++ 기초
a. C++ 이란?
🌟 C언어에 여러가지 기능을 추가해 만든 프로그래밍 언어
b. C++ 특징
- C언어의 절차 지향적 언어의 특징
- 객체 지향적 언어(Simula에서 클래스를 사용)의 특징
- 템플릿으로 대변하는 일반화 프로그래밍 방식
세가지 프로그래밍 방식을 모두 지원해 다양한 방식으로 프로그램을 작성할 수 있음
또한 C 표준 라이브러리를 그대로 사용하면서 다양한 시스템에서의 프로그래밍을 지원
👉 즉, 유용하고도 강력한 클래스 라이브러리들이 많이 제공 (but 부담일 수 있다)
c. C++의 역사
C언어가 개발된 벨 연구소의 비야네 스트롭스트룹(Bjarne Stroustrup)에 의해 개발
1979년 비야네 스트롭스트룹이 Simula의 개념을 C언어에 추가해 "C with Classes"라는 언어를 발표
이후 증가 연산자(++)의 도입으로 C의 확장판이라는 의미로 C++의 이름이 됨 (1984년)
👉 Simula는 여기서 공부
Simula 언어의 개요
A. Simula 언어 개요 1. Simula 기초 a. Simula 란? 🌟 객체 지향 프로그래밍 (OOP) 패러다임의 초기 형태를 형성한 언어 중 하나 b. Simula의 역사 오슬로 노르웨이 계산 센터의 올 요한 다히(Ole-Johan Dahl)와
monamu.tistory.com
d. C++의 탄생 배경
1980년대에 C언어와 파스칼은 절차 지향적이고 구조적 프로그래밍 언어로써 여러 방면에서 사용 중
새로운 프로그래밍 방식인 객체 지향 프로그래밍 OOP의 개념이 스몰토크(Smalltalk)나 에이다(Ada) 등의 언어를 통해 알려지고
벨 연구소의 비야네 스트롭스트룹이 기존의 C언어에 객체 지향 프로그래밍의 클래스 개념만을 추가하여 만든 언어가 바로 초기의 C++
e. C++ 표준
ANSI와 ISO가 표준화 작업, 2011년, 2014년, 2017년, 2020년에 C++11, C++14, C++17, C++20으로 4차례 주요 업데이트
B. C++ 기초
1. C++ 프로그래밍
a. 프로그래밍 실행 과정
C와 동일하지만, 소스파일의 확장자만 .cpp로 다름
C언어와 프로그램의 이해
더보기 [목차] A. C언어 개요 B. 프로그래밍 언어와 프로그래밍 C. C 프로그램 개요 A. C언어 개요 1. C언어 기초 a. C언어란? 🌟 절차 지향 프로그래밍 언어(procedure-oriented programming language) 저급언어 +
monamu.tistory.com
2. C++ 프로그램 구성
❔ 기초예제
#include <iostream>
#define TEXT "Welcome to C++ Programming!!"
int main()
{
std::cout << TEXT;
return 0;
}
✨ 실행결과
Welcome to C++ Programming!!
a. main() 함수
🌟 C++ 프로그램의 뼈대. 반드시 하나의 main() 함수를 가지고 있어야 함 (없으면 오류)
b. 명령문
🌟 C++ 프로그램의 동작을 명시하고, 이러한 동작을 컴퓨터에 알려주는 데 사용되는 문장
c. 반환문
🌟 함수의 종료를 의미, 함수를 호출한 곳으로 결괏값을 반환하는 역할
main() 함수가 반환되면, 프로그램 전체가 종료
d. 선행처리문
🌟 #include, #define문처럼 선행처리기에 의해 처리되는 선행처리문
#include : 외부에 선언된 함수나 상수 등을 사용하기 위해서 헤더 파일의 내용을 현재 파일에 포함할 때 사용
C에서는 헤더파일 확장자 .h사용 / C++에서는 확장자 없이 c + (헤더파일 이름) 사용 (물론 기존 것도 사용 가능함)
❔ 예제
#include <math.h> // C언어
#include <cmath> // C++원칙, but 위 스타일도 사용 가능
e. 네임스페이스
🌟 이름이 기억되는 영역을 뜻하며, 이름이 소속된 공간을 의미
C++ 프로그램을 작성할 때 발생하는 이름에 대한 충돌을 방지해 주는 방법을 제공 (C에 없는 기능)
C++ 프로그램의 표준 구성 요소인 클래스, 함수, 변수 등은 std라는 이름 공간에 저장
따라서 C++ 프로그램에서 표준 헤더 파일인 iostream 내의 정의를 사용하려면 아래와 같이 사용해야 함
❔ 예제 1, 2네임스페이스에 있는 std 정의를 사용하기
#include <iostream>
#define TEXT "Welcome to C++ Programming!!"
int main()
{
std::cout << TEXT;
return 0;
}
--------------------------------------------
#include <iostream>
#define TEXT "Welcome to C++ Programming!!"
using namespace std;
int main()
{
cout << TEXT;
return 0;
}
📘 네임스페이스에 속한 정의를 간단하게 사용하는 명령문
using namespace std;
// std라는 네임스페이스에 속한 정의들은 네임스페이스 이름을 붙이지 않아도 사용할 수 있음.
f. 주석
🌟 코드에 대한 이해를 돕는 설명을 적거나 디버깅을 위해 작성하는 일종의 메모
짧은주석 // 긴주석 /* */ (C와 동일)
C. C++ 표준 입출력 클래스
1. iostream
C++의 모든 것은 객체로 표현 ➡ 입출력을 담당하는 수단 또한 모두 객체
🌟 iostream 헤더 파일에 표준 입출력 클래스를 정의
기존의 C언어 스타일처럼 printf() 함수나 scanf() 함수로도 입출력 작업을 수행할 수 있음
🧡 C언어 표준 입출력 함수와의 차이점
C언어 표준 입출력 함수인 printf() 함수나 scanf() 함수와 C++ 표준 입출력 객체와의 차이점
✔ 삽입 연산자(<<)와 추출 연산자(>>)가 데이터의 흐름을 나타내므로 좀 더 직관적
✔ C++ 표준 입출력 객체는 입출력 데이터의 타입을 자동으로 변환해 더욱 안전
a. cout 객체
🌟 출력 스트림을 나타내는 객체
📘 문법
std::cout << 출력할데이터;
//삽입 연산자(<<) : 오른쪽에 위치한 출력할 데이터를 출력 스트림에 삽입
위 삽입 연산자는 C의 왼쪽 시프트 연산자와 같은 모양
👉 즉, C++ 연산자 오버로딩을 활용한것
b. cin 객체
🌟 입력 스트림을 나타내는 객체
cin 객체는 자동으로 사용자가 입력한 데이터를 오른쪽에 위치한 변수의 타입과 동일하게 변환
📘 문법
std::cin >> 저장할변수;
//추출 연산자(>>) : 사용자가 입력한 데이터를 입력 스트림에서 추출하여, 오른쪽에 위치한 변수에 저장
❔ 예제
#include <iostream>
using namespace std;
int main()
{
int age;
cout << "여러분의 나이를 입력해 주세요 : ";
cin >> age;
cout << "여러분의 나이는 " << age << "살 입니다." << endl;
return 0;
}
✨ 실행결과
여러분의 나이를 입력해 주세요 : 15
여러분의 나이는 15살 입니다. //자동으로 정수를 저장할 때 사용하는 타입으로 변환
여러분의 나이를 입력해 주세요 : 열다섯
여러분의 나이는 0살 입니다. //문자열을 입력하면 cin 객체는 변수 age에 숫자가 아니라는 의미인 0 전달
사진출처 : https://m.blog.naver.com/ruvendix/220940355631
C++언어 정리하기 - C++의 배경
이번 내용을 시작하기 전에안녕하세요 루벤딕스입니다. 이번 포스팅에서는 C++의 배경을 알아볼 거예요. ...
blog.naver.com
http://www.tcpschool.com/cpp/intro
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
https://www.w3schools.com/cpp/cpp_intro.asp
C++ Introduction
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
'프로그래밍 언어 > C++' 카테고리의 다른 글
[자료형(data type)] C++ 기본형 총정리 (0) | 2023.09.05 |
---|---|
C++ 상수 총정리 (0) | 2023.09.05 |
[게임 프로그래머 입문 올인원] 데이터와 로직 : 변수, 상수 (3, 4, 5강) (2) | 2023.09.02 |
[게임 프로그래머 입문 올인원] 데이터와 로직 : 프로그래밍 개론 (2강) (0) | 2023.09.02 |
[게임 프로그래머 입문 올인원] 데이터와 로직 : 환경 설정 (1강) (0) | 2023.09.02 |