[C++] 접근자와 설정자
·
Computer Science/Programming Language
접근자 (accessor) : 멤버 변수 값을 반환하는 멤버 함수 설정자 (mutator) : 멤버 변수 값을 변경하는 멤버 함수 접근자와 설정자 - 일반적으로 get이나 set이 멤버함수의 이름 앞에 붙여짐 ex. getSpeed(), setSpeed() - 사용 이유 (1) 정보 은닉 클래스의 인터페이스와 구현을 분리하는 것이 좋은데, 이 이유는 구현을 변경하기 쉬워지기 때문 ex) gear 변수를 advanced_gear 변수로 변경한다고 가정 만약 외부에서 gear멤버 변수를 직접 사용했다면 gear멤버 변수의 이름 마음대로 변경 불가능 하지만, 접근자와 설정자 사용시 변경 편리 //변경 전 int getGear(){ return gear; } void setGear(ing g){ gear=g; ..
[C++] 객체의 동적 생성
·
Computer Science/Programming Language
동적으로 객체 생성 - new 사용 객체에 대한 포인터 사용하여 객체 사용 명시적으로 객체 삭제 - delete 사용 Car *dynCar = new Car;//동적 객체 생성 dynCar -> speed = 100;//동적 객체 사용 delete dynCar;//동적 객체 삭제 #include #include using namespace std; class Car { public: //멤버 변수 선언 int speed; //속도 int gear;//기어 string color;//색상 //멤버 함수 선언 void speedUp() {//속도 증가 멤버 함수 speed += 10; } void speedDown() {//속도 감소 멤버 함수 speed -= 10; } void show() {//상태 출력..
[C++] 함수 호출 시 인수 전달 방식
·
Computer Science/Programming Language
함수가 외부로부터 매개 변수를 통하여 데이터를 받는 방법(함수 호출 시 인수 전달 방식) (1) 값에 의한 호출(call by value) (2) 참조에 의한 호출(call by reference) 값에 의한 호출 (= 복사본 전달) "복사본 전달"인 이유: 복사본을 아무리 바꿔도 원본이 바뀌지 않음 #include using namespace std; void swap(int x, int y); int main() { int a = 100, b = 200; cout
[C++] 참조자(reference)
·
Computer Science/Programming Language
참조자(reference) : 변수에 별명을 붙여 접근 - 변수 var 선언 후 ref라고 하는 별명 붙이기 (& 사용) int var = 10; int &ref = var; // 참조자에 값을 대입하면 참조자가 참조하는 변수의 값이 변경됨 ref = 20; // var의 값이 20으로 변경됨 참조자 (reference) vs 포인터 (pointer) 1. 참조자는 선언과 동시에 초기화 되어야 함 int &ref;// 컴파일 에러 2. 포인터는 변수이기 때문에 포인터가 가리키는 대상은 변경될 수 있음 참조자는 자신만의 메모리 공간이 할당되지 않기 때문에 참조자가 가리키는 대상은 변경될 수 없음 int &ref = var1; ref = var2;//컴파일 에러 : 참조하는 대상을 변경할 수 없음 3. 참조..
[C/C++] 동적 메모리 할당(dynamic memory allocation)
·
Computer Science/Programming Language
동적메모리 할당(dynamic memory allocation) : 프로그램이 실행 도중에 동적으로 메모리를 할당받는 것 - 필요할 때 필요한 만큼만 할당받을 수 있기 때문에 메모리 효율적 사용 가능 (1) 할당받을 크기 결정 후 라이브러리 함수를 호출하여 운영 체제에게 메모리를 요청 (2) 충분한 메모리가 존재하면 위의 요청이 승인되고 메모리가 할당됨 (3) 프로그램 : 할당된 메모리 사용 (4) 사용이 끝나면 메모리를 다시 운영체제에 반납함 - 반납하지 않으면 다른 프로그램이 동적 메모리를 사용할 수 없게 됨 - malloc( )과 free( ) 라고 하는 라이브러리 함수 사용 malloc( ) 과 free( )를 C++에서 사용할 경우 아래와 같이 사용한다 #include using namespac..
[C/C++] 변수 (지역변수, 전역변수)
·
Computer Science/Programming Language
변수 : 변수가 사용될 수 있는 범위에 따라 지역변수, 전역변수로 나누어짐 지역변수 (local variable) : 블록 안에서만 정의되는 변수 - 해당 블록 안에서만 접근과 사용 가능 cf) 블록 : 중괄호로 둘러싸인 영역 - 블록이 시작할 때 스택(stack)이라는 메모리 공간에 만들어짐 - 지역 변수에 할당된 공간은 블록 끝에서 반환됨 -> 이때 지역 변수도 사라짐 - 지역변수는 반드시 초기화를 시켜주어야 함 - 지역 변수는 컴파일러에 의하여 자동으로 0으로 초기화 되지 않음 -> 초기값을 정해주지 않았다면 아무의미 없는 값(쓰레기값(garbage value))이 들어가 있음 C 블록의 시작부분에서만 선언 가능( 중간에서는 선언 불가능) C++ 블..
[C++] 디폴트 매개변수 (default parameter)
·
Computer Science/Programming Language
함수 정의에서 선언된 매개변수 - 원칙적으로는 호출 시에 값을 전달 - 전달되는 값은 동일한 자료형 void sub(double value); - 위의 예시는 함수 원형이 선언된 sub()함수 이다. sub()함수는 double값을 호출함수가 전달해야함 - sub()에 전달되는 인자가 double형이 아니면 컴파일 에러발생 - [C++] 인수 전달하지 않아도 디폴트값을 대신 넣어주는 기능 존재 : default parameter (디폴트 매개변수) void sub(double value = 1.0);//함수 원형 정의 - 위의 예시의 경우, sub()에 인수가 주어지지 않으면 매개변수는 1.0이라는 디폴트 값을 가지게 됨 - 디폴트 매개변수는 원형에서만 정의됨(함수 정의 시 디폴트값 표시 X) - 디폴트..
[JAVA] 데이터타입 - 참조 타입
·
Computer Science/Programming Language
자바의 데이터타입 (1) 원시 타입(primitive type) - 정수, 실수, 문자, 논리 리터럴 저장하는 타입 - (byte, char, short, int, long, float, double, boolean) - 실제 값을 변수 안에 저장 (2) 참조 타입(reference type) - 객체(Object)의 번지를 참조하는 타입 (번지를 통해 객체를 참조) - 배열, 열거, 클래스, 인터페이스 타입 - 메모리의 번지를 값으로 가짐 //기본 타입 변수 int age = 22; //참조 타입 변수 String name = "kbs"; int형 변수 age : 22라는 값을 "직접" 저장하고 있음 String 클래스 변수 name : "힙(heap)영역의 String 객체 주소 값"을 가지고 있음 ..