c++언어와 java의 차이점
- 최초 등록일
- 2007.10.18
- 최종 저작일
- 2006.09
- 7페이지/ 한컴오피스
- 가격 1,000원
소개글
c++언어와 java의 차이점
목차
1. 프로그램의 정의
(1) C
(2) C++
(3) 자바
2. C++과 JAVA의 차이점
(1) 기본형(primitive type)의 차이
1) 문자형(char)
2) 정수형
3) 실수형
4) 문자열
(2) 사용자 정의형에 대한 차이
(3) 클래스의 차이점
1) 프로그램의 기본 구성단위
2) 다중 상속 vs 인터페이스
3) 동적 바인딩 vs 정적 바인딩
4) finalize(final)
<참고 자료>
본문내용
1. 프로그램의 정의
(1) C
C의 경우에는 기본형(primitive types), 복합형(complex types - 구조체와 공용체), 주소형(addressing types)에 관계없이 무조건 값이 복사됩니다. C에서 Call by reference가 지원되는 것은 함수의 전달인자에 주소형이 사용되기 때문입니다. 이 경우도 기계적으로 보자면 주소 자체가 복사되는 것이므로 call by value로 볼 수 있으나, 의미적으로 call by reference로 동작하기 때문에 일반적으로 그냥 call by reference라고 부릅니다.
함수를 만들 때, 전달 인자에 전달될 데이터 형의 포인터 차원을 지정해 주지 않으면 어떤 경우에든 값이 직접 복사됩니다. (Call by value) 심지어, 구조체의 경우 구조체의 모든 멤버 변수들이 다 복사됩니다. 만약 구조체의 크기가 수 킬로바이트 정도로 크다면 끔찍한 일이 발생할겁니다.
요약하자면, C 언어에서의 함수 인자 전달은 원칙적으로 모두 call by value이지만, 포인터를 사용하여 의미적으로 call by reference를 지원할 수 있습니다.
(2) C++
C++은 C와 다르게 참조형을 지원합니다. (C언어는 & (address-of) 연산자와 * (dereference; 역참조) 연산자를 통한 포인터 개념만을 지원합니다. 그러나 C++ 언어에서는 & 기호를 변수 선언시에 사용할 경우 해당 변수는 참조형 변수가 됩니다.)
C++의 참조형은 데이터 형이 기본형이든 복합형이든, 주소형이든 간에 변수 선언 시에 & 기호를 사용하여 정의할 수 있습니다. 포인터 변수와의 차이점은 주어진 주소를 변경할 수 있느냐의 여부가 될 것입니다. 참조형 변수를 한번 선언하게 되면 가리키고 있는 기억 장소에 대한 주소를 변경할 수 없습니다. 이것은 포인터 변수에 const 지정자를 사용한 것과 같은 효과를 갖습니다.
C++에서 함수(또는 클래스의 멤버 메서드) 간의 데이터 전달은 C와 기본적으로 같지만, 언어 차원에서 참조형을 지원한다는 것에 차이가 있습니다. C++에서의 참조형은 기본적으로 자바와 동일하게 동작합니다. 그러나 차이가 있다면,
참고 자료
「프로그래밍 언어론」- 원유헌교수(홍익대학교) 정익사