객체 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

+ Recent posts