int a = 1; 일때 'a'는 변수.사실 a 소환시 메모리공간이 할당되며 해당 메모리 공간을 지칭하거나 일컫고 싶을때 'a'라고 함. (일종의 메모리 공간의 이름) 즉, 'a'에 1을 저장하는것이 아닌 a의 이름이 붙여진 '메모리공간' 에 1을 넣는것이다.참조자참조
참조: 윤성우의 열혈 c++val1 의 또 다른 이름이 ref1, val2의 또 다른 이름이 ref2가 되는것.실제로 많이 사용되지는 않음 pointer를 활용한 call-by-reference가 훨씬 더 많이 사용됨.성능의 효율성을 위해 참조자 선언.하지만 해당 함수
참조: 윤성우의 열혈 c++int형 변수의 할당 : int \* ptr1 = new int ;double형 변수의 할당 : double \* ptr2 = new double ;길이가 3인 int형 배열의 할당 : int \* arr1 = int3;앞서 할당한 int형
출처: 윤성우의 열혈 c++ (http://www.orentec.co.kr/teachlist/CPP_BASIC_1/teach_sub1.php)전화번호 관리 프로그램의 경우Data: 이름, 전화번호, 주소, 학과, 나이 등등기능: 입력, 출력, 삭제, 검색 등구
참조 : 윤성우의 열혈 C++클래스 Car 를 대상으로 파일을 나눠보자.Car.h => 클래스의 선언을 담는다.Car.cpp => 클래스의 정의(멤버함수의 정의)를 담는다.멤버함수의 정의부분을 컴파일 하는데도 '클래스의 선언'(헤더파일) 정보가 필요하다.main.cpp
출처: 윤성우의 열혈 c++ 프로그래밍객체는 영어로 Object.사물 또는 대상...즉, Object는 우리 주변에 존재하는 물건( 연필, 나무, 지갑, 돈 등등) 이나 대상( 철수,친구 , 선생님 등)전부를 의미한다.그렇다면 객체를 지향하는 프로그래밍이란? " 나는
참조: 윤성우의 열혈 c++점을 표현한 Point 클래스의 멤버변수 x,y는 public으로 선언되어서 어디서든 접근이 가능.직사각형을 표현할 두개의 Point객체 생성. 이렇듯 멤버변수가 public으로 선언되며, 구조체 변수를 초기화하듯이 초기화 가능.생성한 Poi
출처 : 윤성우의 열혈 c++ 프로그래밍 생성자의 이해 지금까지는 객체를 생성하고 객체의 멤버변수를 초기화 목적으로 InitMembers 라는 함수를 정의,호출 하였다. 하지만 '생성자' 사용시 객체도 생성과 동시에 초기화 가능. > 생성자 조건 1 - 클래스
출처 : 윤성우의 열혈 c++ 프로그래밍A Obj1B Obj2 생성..& Obj1 , &Obj2 출력시 해당 주소값도 출력되지만 클래스 타입인 A,B역시 같이 출력된다.따라서 Obj1, Obj2 안에서의 'this'가 가르키는것은 주소값(0x100, 0x200) 과 더
잘못된 예시 (얕은 복사) 해당 코드에서는 a의 주소값이 b의 주소값과 동일하게 되고 같은 값을 가르키케된다. 문제점 : a의 포인터 해제되지도 않았을 뿐더라 '5'의 값에 접근불가가 된다. > 깊은 복사 a가 가르키는 공간이 b의 공간이 되게끔 만든다.
등호 연산자는 '얕은복사'가 일어나게 됨으로써 원래 객체가 지정하고 있던 값만 둥둥떠다니고 포인터 해제시 해제가 안되는 포인터 주소가 발생됨.rhs에 '&'를 붙이는 이유는 & 없이 String s2(s1) ; 와 같이 하면 rhs 에 s1이 복사가 되므로 복사생성자가
해당 코드 실행시 a가 대입연산자를 통해서 함수(getName())의 결과를 할당받으면서 '복사생성자' 실행됨. getName 함수 내에서 return res 실행 후 res 는 소멸.그러면 어떻게 a는 getName이 반환하는 res를 할당받을 수 있을까 ?따라서 g
const const로 선언된 멤버
출처: 윤성우의 열혈 C++ 프로그래밍함수 내 선언된 static의 의미\-> 한번만 함수내에서 초기화되고, 함수밖을 빠져나가도 소멸되지 않는다.static 멤버변수는 '클래스 변수'라고도 한다. 일반적인 멤버변수와 달리 클래스당 '하나'씩만 생성되기 때문이다.위의
출처 : 윤성우의 열혈 c++ 프로그래밍 상속에 들어가기 앞서 > 직원 정보 클래스 > 직원 핸들러 클래스 ~ PermanentWorker 클래스는 데이터적 성격이 강하고 EmployeeHandler 클래스는 '기능적' 성격이 강하다. 쉽게 말해 기록의 보전을
참조 : 윤성우의 열혈 c++ 프로그래밍PartTimeStudent , Student 는 모두 Person 이므로 Person형 포인터 변수는 PartTimeStudent , Student 객체를 모두 가리킬 수 있다 ( 객체의 주소 값을 저장할 수 있다)따라서 Per
&는 주소연산자이므로 & 사용시 변수에 할당된 메모리의 주소 확인 가능'\*' (포인터)는 말 그대로 어디를 가르킨다는 의미로 내가 보고자하는 메모리 영역의 메모리 주소값에 접근하는 것.b는 포인터이므로 b,&b 출력시 해당 주소값을 반환하며 \*b는 해당 value
1) 메모리 사용에 대한 효율적 측면✅ 특정 소스파일 실행 시 해당 코드들은 RAM에 올라가서 실행됨 하지만 RAM의 메모리 자원은 한정적.✅ 따라서 특정 프로세스를 실행시킬 때 해당 프로세스가 처음부터 끝까지 계속 홀딩하고 있다면 그만큼 메모리 낭비가 발생.✅