728x90
반응형
C++ 언어의 표준
1998년 미국 표준원인 ANSI 에서 C++ 언어에 대한 표준이 설정되었다.
C언어를 설계한 주요 목적
- C와의 호환성이 좋다.
- 실행 시간의 효율성 저하를 최소화한다.
- 엄격한 타입체크
- 객체지향 개념 도입
C언어에 추가한 기능
- 함수 중복 : 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들 선언
- 디폴트 매개변수 : 매개 변수에 디폴트 값이 전달되도록 함수 선언
- 참조와 참조 변수
- 참조에 의한 호출
- new/delete 연산자
- 연산자 재정의 : 기존 C++ 연산자에 대한 추가된 정의
- 제네릭 함수와 클래스 : 데이터 타입에 의존하지 않고 일반화시킨 함수나 클래스 작성 가능
C ++ 객체 지향 특성 - 캡슐화
캡슐화
데이터를 캡슐로 싸서 외부의 접근으로부터 보호
C++에서 클래스로 캡슐을 표현한다.
C ++ 객체 지향 특성 - 상속
C ++ 객체 지향 특성 - 다형성
다형성
: 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동하는 현상
함수뿐만 아니라 연산자도 오버로딩 가능하다.
C ++ 은 C 언어와 호환성을 추구한다.
장점 : 기존에 개발된 C 프로그램 코드를 활용가능하다.
단점 : 캡슐화의 원칙이 무너진다.
따라서 C++에서 전역변수와 전역 함수를 사용할 수 밖에 없고, 부작용이 발생할 수 있다.
C++ 맛보기
기존 C 코드
#include<stdio.h>
int main() {
printf("Hello World!");
return 0;
}
#include<iostream>
int x = 10; // 전역변수
int main() { // 운영체제에서 가장 먼저 호출하는 함수
std::cout << "Hello World!"; //printf("Hello World!");
return 0;
}
//표준화 되기 전에는 void main(){} 으로 사용하기도 했었지만, 지금은 표준화 되었다.
#include<iostream>
int x = 10; // 전역변수
int main() { // 운영체제에서 가장 먼저 호출하는 함수
std::cout << "Hello World!" << std::endl;
std::cout << "hihi";
return 0;
}
줄바꿈은 위와 같이 표현할 수 있는데, std:: 이거 너무 쓰기 귀찮다? 그렇다면 아래같이 작성할 수도 있다.
#include<iostream>
using namespace std; // std: cout, endl, cin 등등
int main() { // 운영체제에서 가장 먼저 호출하는 함수
cout << "Hello World!" << endl;
cout << "hihi";
return 0;
}
namespace 만들기
프로젝트 규모가 커지고, 여러 사람이 같은 프로젝트를 개발하다 보면,
함수 이름이나 변수이름이 충돌이 발생할 수 있다.
따라서 이름 충돌을 해결하기 위해 namespace 키워드를 이용한다.
std 는 C++ 표준에서 정의한 이름 공간 중 하나이고,
std:: 을 생략하고 싶다면, using 지시어를 사용하면 된다.
#include<iostream>
using namespace std; // std: cout, endl, cin 등등
namespace kim {
int a;
void show() {}
}
int main() { // 운영체제에서 가장 먼저 호출하는 함수
cout << "Hello World!" << endl;
cout << "hihi";
kim::a = 100;
cout << kim::a << endl;
return 0;
}
C++ 주석
여러 줄 주석 /* */
한 줄 주석 //
main 에서 개발자의 편의를 위해 return 0 는 생략 가능하다.
C++ 데이터 타입
- bool : c 에 비해 하나 더 생겼다!
- char
- short
- int
- long
- float
- double
728x90
반응형
'Archive > Develop' 카테고리의 다른 글
[ CodeUp ] Python 기초 100제 | 6007 번 풀이 (0) | 2021.03.10 |
---|---|
[ C++ ] C++ 포인터 | C++ 로또 , 랜덤 숫자, 최대값 구하기 (0) | 2021.03.09 |
[ Oracle ] 변환함수 (to_char, to_number, to_date) (0) | 2021.03.08 |
[ 인공지능 ] Google Colab 이란? | Colab 사용하기 | Colab 기초 사용법 (3) | 2021.03.08 |
[ Oracle ] Oracle scott 스키마 설치하기 | 제약 조건 설정하기 | 제약조건 스키마 | 제약 조건 확인하기 (0) | 2021.03.08 |