C와 비교한 C++의 특징
c언어와의 호환성
- c언어의 문법 체계 계승
객체 지향 개념 도입
- 캡슐화, 상속성, 다형성
1. 소프트웨어의 재사용을 통해 생산성 향상
2. 복잡하고 큰 규모의 소프트웨어의 작성, 관리, 유지보수 용이
c언어에 기능 추가
- 함수 중복(function overloading): 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들 선언
- 디폴트 매개 변수(default parameter): 매개 변수에 디폴트 값이 전달되도록 함수 선언
- 참조와 참조 변수(reference): 하나의 변수에 별명을 사용하는 참조 변수 도입
- 참조에 의한 호출(call-by-reference): 함수 호출 시 참조 전달
- new/delete 연산자: 동적 메모리 할당/해제를 위해 new와 delete 연산자 도입
- 제네릭 함수와 클래스: 데이터 타입에 의존하지 않고 일반화시킨 함수나 클래스 작성 가능
c++ 객체지향 특성
캡슐화
캡슐화(Encapsulation)
- 데이터를 캡슐로 싸서 외부의 접근으로부터 보호
- c++에서 클래스(class 키워드)로 캡슐 표현
- private: 동일한 클래스 내부에서만 접근 가능
- public: 클래스 내/외부로부터 모두 접근 허용
- protected: 클래스 내부 및 상속받은 자식 클래스에 접근 허용
클래스와 객체
- 클래스: 객체를 만드는 틀
- 객체: 클래스라는 틀에서 생겨난 실체
- 객체(object), 실체(instance)는 같은 뜻
// 원을 추상화 한 Circle 클래스
class Circle{
private:
int radius;
public:
Circle(int r){
radius = r;
}
double getArea(){
return 3.14*radius*radius;
}
};
상속성
객체 지향 상속(Inheritance): 자식이 부모의 유전자를 물려받는 것과 유사
c++ 상속: 객체가 자식 클래스의 멤버와 부모 클래스에 선언된 모양 그대로 멤버들을 가지고 탄생
class Phone{
void call();
void receive();
};
class MobilePhone : public Phone{ //Phone를 상속받는다.
void connectWireless();
void recharge();
};
class MusicPhone : public MobilePhone{ //MobiePhone을 상속받는다.
void downloadMusic();
void play();
};
다형성
다형성(Polymorphism)
- 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동하는 형상
- 연산자 중복, 함수 중복(overloading), 함수 재정의(overriding)
c++와 제네릭 프로그래밍
제네릭 함수와 제네릭 클래스
- 제네릭 함수(generic function): 동일한 프로그램 코드에 다양한 데이터 타입을 적용할 수 있게 일반화시킨 함수
- 제네릭 클래스(generic class): 동일한 프로그램 코드에 다양한 데이터 타입을 적용할 수 있게 일반화 시킨 클래스
- template 키워드로 선언: 템플릿 함수 혹은 템플릿 클래스라고도 부름
- java, c#등 다른 언어에도 동일한 개념이 있음.
c++ 프로그램 개발 과정
'ETC' 카테고리의 다른 글
[git] 레포지토리(폴더) 이름 수정하기 (0) | 2021.10.20 |
---|---|
[ios] 에뮬레이터 위치 정보 설정하기 (0) | 2021.10.19 |
[c++] inline 함수 (0) | 2021.10.18 |
[c++] c++의 문자열 (0) | 2021.10.18 |
[c++] cin의 개념 (0) | 2021.10.18 |
[c++] namespace 개념 (0) | 2021.10.18 |
댓글