[C++] C++과 Java
반응형
같은 객체지향언어이고 문법도 비슷하지만, 언어를 깊게 이해하기 위해서는 두 언어의 차이점을 알아야 한다.
우선 C++이 자바보다 먼저 나왔고, 자바는 C++의 뒤를 잇는 완전한 객체지향을 지향하는 언어이다.
즉, C++은 자바만큼 객체지향을 완벽하게 지원하지는 않는다고 생각할 수 있다.
객체의 생성자를 정의할 때 C++은 initialization list와 몸통부 사용할 수 있지만 자바에서는 initialization list를 지원하지 않는다.
원래 C++은 initialization list를 사용해 변수를 초기화하고 생성자의 몸통부를 통해 별도의 작업을 수행하라는 의도로 이렇게 설계됐지만, 자바를 설계할 때는 두 가지 작업을 한 번에 처리하는게 합리적이라고 판단해 initialization list를 지원하지 않는다.
이 외에도 C++에는 default 접근 제한자가 없고, public private 등 여러 접근제어자의 의미도 자바와는 조금 다르다.
언어가 나온 순서를 고려해 "이 언어는 이전 언어의 어떤 점을 어떻게 보완했을까?" 를 생각하며 공부하자.
반응형
'Programming Language > C++' 카테고리의 다른 글
| [C++] OOP (4) Type Casting (0) | 2022.10.19 |
|---|---|
| [C++] OOP (3) Inheritance / 연산자 오버로딩 (1) | 2022.10.12 |
| [C++] Memory Allocation / static (1) | 2022.10.05 |
| [C++] OOP (2) 함수 오버로딩 / 함수 호출 (0) | 2022.09.28 |
| [C++] OOP (1) 개념 / namespace (0) | 2022.09.14 |
댓글
이 글 공유하기
다른 글
-
[C++] OOP (4) Type Casting
[C++] OOP (4) Type Casting
2022.10.19 -
[C++] OOP (3) Inheritance / 연산자 오버로딩
[C++] OOP (3) Inheritance / 연산자 오버로딩
2022.10.12 -
[C++] Memory Allocation / static
[C++] Memory Allocation / static
2022.10.05 -
[C++] OOP (2) 함수 오버로딩 / 함수 호출
[C++] OOP (2) 함수 오버로딩 / 함수 호출
2022.09.28