[C++] C++ 프로그래밍 고급 1일차
사전, 사후 테스트....??!!!!!
뭔가 이번 수업은 지난번의 수업들과는 다를 것 같습니다....
c++에 대해서는 공부를 해 본 경험도, 강의를 들어 본 적도 없습니다.
새로운 ???????????????????????????????????
연산자, 함수 재정의 등 그나마 알고있던 개념과 Friend라는 새로운 용어도 들었습니다.
codeblock이라는 새로운 IDE를 설치하였습니다.
======================================== 2 =====================================
(20:01 ~ 20:52 )
컴파일을 하면 실행파일이 생성됨.
윈도우즈는 exe, 리눅스는 elf ->같은 종류의 코드로 묶고 섹션별로 구성
각 섹션별 저장되는 종류에 대해서 자세하게 설명을 해 주셨습니다.
전역변수와 초기화되지 않은 static변수는 무슨값을 갖는가에 대한 질문을 하셨는데 저만 당당하게 쓰레기값이라고 해서 틀렸습니다.!!!!!
좋은것을 배웠네요. 지역변수 ( Stack memory)는 쓰레기 값이, 전역변수와 static변수는 0이 들어간다는 것을 알려주셨습니다.
char *p = "apple";
char arr[] = "apple";
p[0] = 'b';
arr[0] = 'b';
위의 4줄에서 틀린줄은....!????
이번에도 과감하게 3번을 선택했는데 다행히 맞았습니다. 그 이유는 상수영역에 쓰기를 시도하기 때문에 컴파일 타임이 아닌 런타임에 잘못된 쓰기에 관한 Error가 발생합니다.
(생각하고 있던 이유는 살짝 틀렸습니다.)
const int a ;
int const a;
int const *a;
int *const a;
1번과 2번은 같고 3번은 값을 , 4번은 주소를 바꾸지 못하게 함.
앞에있는 것을 바꾸지 못하게 한다고 생각을 하면 된다고 설명을 해 주셨습니다.
const는 주로 Libary 함수에서 많이 사용합니다. 연산자 재정의시에도 많이 사용합니다.
참조변수 -> 변수의 별칭을 얘기합니다.
int a;
int &b = a;
참조변수는 값을 꼭 할당 해 주어야합니다.
함수 호출 방법 C언어는 아래의 2가지가 있습니다.
call by reference ->
call by value ->
C++에서는 아래의 방법도 있음.
참조변수를 복사해서 사용.
주소값을 복사하는 것이 값을 모두 복사하는 것 보다 큰 객체나 구조체의 경우에 유리하며 그것보다도 참조변수를 사용하는 것이 주소값을 복사하지 않고도 해당 메모리에 접근하여 사용할 수 있습니다.
inline Function
사용될 때 코드를 분기하여 이동하는 것이 아니라 추가하는 것이라고 보면 됩니다.
사용의 효과-> 작은 크기의 코드에서는 분기를 하지 않아 속도 개선을 할 수 있지만 Cache이상의 크기를 가지면 역효과를 낼 수 있습니다.
지역 변수에 대한 참조를 리턴하는것은 좋은 코드가 아닙니다.
================================== 3 ===========================================
(21:04 ~ )
함수를 const로 사용??
새로운 도구를 사용하여 프로젝트를 만들고 코드를 불러와서 실행을 하는 것을 해 보았습니다. 이번 강의는 호흡이 빨라 사진음 첨부하면서 따라가기가 조금 버겁습니다.
클레스 전체를 Friend로 등록을 하는 것 보다 private 맴버변수를 접근하는 메소드만 Friend로 등록을 하는 것이 더 바람직합니다.