객체 Objects
- 객체지향 프로그래밍란 말에서 사용되는 객체(Object)
- c++,java에서 사용
- 물리적으로 공간을 차지하고 있는 물체를 존재한다고 본다.
- 컴퓨터안에선 메모리에 저장이 돼있는 정보가 객체로서 존재한다고 본다.
변수 variables
- 객체를 다루고 싶을때 즉, 메모리에 올려놓고 사용하고 싶을 때 사용한다.
- ex)아파트 104동 1014호 1041014로 저장하면 보기 힘드므로 OO 네 집처럼 이름 저장한다.
Left-values와 Right-values
- Left-values는 알기 쉬운 주소 값을 가지고 있다.
- Right-values는 주소값을 알기 어렵다.
초기화 initializaion와 대입 assignment
- int a = 123; int a(123);등이 initializaion초기화이다.
- 초기화는 메모리에 적재될 때 같이 집어 값을 넣어준다.
- int b;
- b = 123;은 assignment 대입의 개념 생성된 메모리 안에 값을 대입해준다.
초기화를 안 했을 때의 문제점
- 메모리 주소 안에 garbage값이 들어 있을 수 있다.
#include <iostream>
int main()
{
//x라는 정수형(interger)변수를 선언했다.
//x도 객체이다. x는 숫자를 담을수있는공간을 메모리에 차지하고 있다.
//x 메모리의 이름이다.
int x;
//x = 123 <- assignment 대입해준다.
//프로그래밍에서 = 는 보통 오른쪽값을 왼쪽에 대입해준다.
//즉, x란 변수가 가르키고있는 메모리 공간에 123을 대입해준다.
x = 123;
//x의 주소의 대입되어있는 값 출력
std::cout << x << std::endl;
//x의 주소 출력(메모리주소)
std::cout << &x << std::endl;
//Left-values int x 는 메모리의 주소를 가지고있다.
//Right-values 123는 프로그래머가 임시로 저장된 주소를 가져오기가 어렵다.
int a = 123;
//왼쪽 a는 Left-values이나 오른쪽 a는 a의 값을 임시로 복사해온 right-values로 본다.
a = a + 123;
//int z = 123;
//z라는 변수가 메모리에 할당받을때 바로 집어넣어준다.
//메모리에 garbage 값이 있을수 있기에 초기화 해준다.
//initialization
int z = 123;
//x = 123 <- assignment 대입해준다.
z = 123;
//initialization와 assignment같아보이지만 다르다.
//ex)int z(123);으로 사용할 수 있다.
//initialization의 개념은 생성자,소멸자,오버로딩,오버라이딩에 사용된다.
return 0;
}
'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글
c++ 함수란? (0) | 2019.06.25 |
---|---|
c++ 입력,출력 (0) | 2019.06.25 |
C언어 파일입출력 (0) | 2019.01.18 |
C언어 코딩 함수포인터,구조체 (0) | 2019.01.08 |
C언어 코딩 동적메모리 할당 (0) | 2019.01.07 |