컴퓨터 수업(64)
-
this 포인터
@느낌 멤버함수 내부에만 작성하게 될것이다. no 프렌드함수 @this 포인터 멤버 함수 내에서 클래스의 데이터 멤버들을 참조하는 경우에 직접 참조가 가능하기 때문에 객체명을 지정하거나 도트 연산자를 사용할 필요가 없었다. 하지만 연산자 오버로딩에서 중요하니까 알아야한다. 다음 예시를 보자. class vector { private: int vector[2] public: int inner(vector b) { return vector[0]*b.vector[0] +vector[1]*b.vector[1]; } } int main() { vector a,b; cout 가 의미 있는것이 아니다.
2020.09.10 -
선언과 정의
C++ 에서는 종종 선언(declaration)과 정의(definition)이라는 용어를 사용한다. 두 가지의 차이점을 알아보자. *정의(definition)는 식별자(identifier)를 실제로 구현하거나 인스턴스화(메모리 할당) 한다. * 출처: https://boycoding.tistory.com/143 [소년코딩] -> 식별자(identifier)라는 단어가 클래스가 인스턴스화 되기 전의 상태를 의미한다고 생각해보자.
2020.09.10 -
C++ include style, 설명하면서 자연스럽게 linker와 preprocessor
@솔루션 -> 프로젝트 -> 소스코드 순으로 위계가 존재한다. 소스코드의 확장자는 주로 cpp인데. 보통 메인함수가 cpp에 존재한다. 따라서 cpp에서 헤더를 include 하므로 헤더에선 cpp를 include 할 필요가 없다. *20200910 추가) @정의와 선언 cpp에는 정의, h에는 선언이라 생각하자 (식별자 identifier) (인스턴스화 되기 전의 클래스) class.h와 function.h가 존재한다고 생각해보자, class.h에는 특정 class의 내용, function에는 사용자 지정 함수 (not 멤버 함수) @ 실제 사례 이때 main.cpp에는 구동 내용만 적으며 맨 위에 #include "class.h" , #include "function.h" 그리고 class.h에는 c..
2020.09.09 -
나는 포인터가 싫어요. (포인터변수와 참조자를 함수에 인자로 주고받는 것에 대해.)
이 포스트는 C를 기반으로 작성되었습니다. @변수의 종류를 알아보자. 1.일반변수 ex) int x; --> 일반변수를 저장합니다. 2.포인터변수 ex) int * px; --> 메모리주소를 저장합니다. 3.참조자변수 ex) int & rx; --> 도플갱어를 저장합니다. @선언과 초기화, 그리고 정의를 풀어서 읽어보자. 1.일반변수 //선언과 초기화 int x; // 선언 x = 10;// 초기화(할당) 위와 같이 변수는 "선언"과 "초기화" 2단계로 나누어서 결정합니다. 이를 동시에 하는 행위를 "정의"라고 합니다. //동시에 int x = 10; // 정의 2.포인터변수 먼저 포인터변수를 선언과 초기화 2단계로 나누어서 설정하자면 (먼저 x가 정의되었다고 가정합시다.) //선언과 초기화 int * ..
2020.09.03