목록명품 (11)
디필의 요모조모
C++의 인자 전달 방식 ‘값에 의한 호출’, ‘주소에 의한 호출’, ‘참조에 의한 호출’의 3가지가 있다. ‘값에 의한 호출’시 실인자의 값이 매개 변수에 복사되어 전달되므로, 매개 변수와 실인자는 메모리를 서로 공유하지 않는다. 그러므로 함수 내에서 매개 변수의 값을 변경해도 실인자의 값이 바뀌지 않는다. 객체가 ‘값에 의한 호출’로 전달되면 매개 변수 객체의 생성자는 실행되지 않고 소멸자만 실행되는 문제가 발생한다. ‘참조에 의한 호출’은 원본에 대한 참조만 전달되므로 함수 내에서 참조 매개 변수를 이용하여 원본 데이터를 읽고 수정할 수 있다. 객체 치환 및 객체 리턴 치환 연산자(=)로 객체를 치환하면, 비트 단위로 객체가 복사된다. C++ 함수는 객체를 리턴할 수 있다. 이때 객체의 복사본이 만..
객체 포인터 C++에서는 객체의 주소를 가지는 객체 포인터를 선언하고 활용할 수 있다. 객체 포인터로 객체의 멤버에 접근할 때 -> 연산자를 사용한다. 초기화되지 않는 객체 포인터를 사용하면 null pointer assignment 실행 오류가 발생한다. 객체 배열 객체 배열의 선언 및 활용 방법은 기본 타입 배열과 동일하다. 객체 배열이 생성될 때 배열의 각 원소 객체마다 기본 생성자가 실행되며, 배열이 소멸될 때 각 원소 객체마다 소멸자가 실행된다. 원소 객체는 인덱스가 높은 곳에서 낮은 순으로 소멸된다. 객체 배열은 다음과 같이 생성자를 이용하여 초기화할 수 있다. Circle circleArray[3] = { Circle(10), Circle(20), Circle() }; 동적 메모리 할당 및 ..
객체에 대한 이해 실세계는 객체들의 집합이며 객체들이 상호 통신하는 시스템이다. 캡슐화는 객체를 캡슐로 싸서 그 내부를 볼 수 없게 하고 외부의 접근으로부터 보호한다. C++ 객체는 멤버 변수와 멤버 함수로 구성되며, 멤버 변수는 객체의 상태(state)를, 멤버 함수는 객체의 행동(behavior)을 표현한다. C++ 클래스는 객체를 정의하는 틀 혹은 설계도로서 사용자는 클래스로 새로운 데이터 타입을 선언한다. C++ 객체는 실행 중에 생성되어 존재하므로 실체(instance)라고도 부른다. C++ 클래스 만들기 class 키워드를 이용하여 클래스를 선언한다. 클래스 선언 뒤에는 반드시 세미콜론(;)을 붙인다. 클래스는 선언부와 구현부로 나누어 작성하는 것이 원칙이다. 클래스 구현부는 클래스 선언부에 ..
1. 자바에서 클래스를 선언할 때 사용하는 자바의 키워드는? class 2. 다음은 10과 20을 더해 합을 출력하려고 작성한 자바 프로그램이지만 오류가 있다. public class SampleProgram { int i; int j; i = 10; j = 20; System.out.println(i+j); } (1) 오류를 찾아내어 고쳐라. public class SampleProgram { public static void main(String [] args) { int i; int j; i = 10; j = 20; System.out.println(i+j); } } (2) 이 자바 클래스를 저장하는 소스 파일 이름은 무엇인가? SampleProgram.java (3) 명령창에서 이 프로그램을 컴파..
1. 화면에 다음과 같이 "Welcome!!", "자바 세계로 오신 것을 환영합니다."를 출력하는 자바 프로그램을 작성하라. 이클립스를 이용하고, 작업 공간(workspace)은 C:\Temp로 하고, 프로젝트 이름은 1-1로 한다. 클래스 이름은 Welcome으로 한다. 더보기 Welcome!! 자바 세계로 오신 것을 환영합니다. public class Welcome { public static void main(String [] args) { System.out.println("Welcome!!"); System.out.println("자바 세계로 오신 것을 환영합니다."); } } 2. 화면에 "Sorry~~", "재밌어서 미안합니다~~"을 출력하는 자바 프로그램을 작성하라. 이클립스를 이용하고, ..