목록전체 글 (279)
ecsimsw
- 컴파일 시 바인딩된 (정적 바인딩된) base reference 변수로 오버라이딩한 함수를 호출할 시 당연히 base 클래스의 함수를 호출하게 된다. - 동적 바인딩을 통하여 함수와 함수 정의를 실행 시에 바인딩하도록 할 수 있고, 특정 함수에 대해 동적 바인딩을 사용하고자 할 때 virtual 키워드를 사용할 수 있다. c++ overriding class A { public: void foo(){ cout
베이스 클래스의 객체에 파생 클래스의 객체가 복사되면 베이스 클래스의 프로퍼티 외에 나머지 추가적인 프로퍼피는 저장할 곳이 없어 복사가 불가능하다. 이것을 객체 잘림(object slicing)이라고 한다.
네임 맹글링은 동일한 함수명을 갖는, 오버로딩한 함수들을 함수의 형태와 파라미터 정보로 명칭을 따로 부여하여 구별하기 위한 매커니즘이다. @

- storage class (기억 부류)는 변수의 종류에 따라서 초기화나 파괴 시기, 얼마나 지속되어야하는지를 결정하는 역할을 한다.
정적 스코프 : 컴파일 시에 결정되는 가장 가까운 바깥쪽의 스코프 변수 값으로 처리 동적 스코프 : 컴파일 시 자료형 체크 불가능 : 대개 인터프리티드 언어에서 사용되는 방식 : 스택을 이용해서 호출되는 스코프들을 쌓고 가장 가까운 것의 변수 값이 바인딩 int count = 10; void foo2(){ print(count); } void foo1(){ int count = 20; foo2(); } main(){ foo1(); } // 정적 스코핑 : foo2의 출력은 count = 10 // 동적 스코핑 : foo2의 출력은 count = 20
- Binding Times : 언어 설계 (language design time) : 연산자와 연산 바인딩 : 언어 구현 (language implementation time) : 데이터 타입과 데이터 값 바인딩 : 프로그램 작성 (program writing time) : 알고리즘, 데이터 구조, 모듈 바인딩 : 컴파일 (compile time) : 변수와 데이터 유형 바인딩 : 링크 (link time) : 메모리 내의 프로그램 전체 라이브러리, 모듈 확정 : 로드 (load time) : 물리적 주소 선택 : 실행 (run time) : 변수에 메모리가 위치한 값 바인딩