전체보기90 접근 지정자 protected 와 private의 차이점 private 상속 : 자식클래스는 부모클래스의 private member을 모두 상속받지만, 이를 접근하기 위해선 부모클래스의 public interface멤버 함수를 통해서만 접근이 가능하다. class Student: private Person { ... } -> 부모 클래스의 모든 멤버는 자식 클래스에서 private 멤버로 변경됨 protected 상속 : 자식/자손 일 경우 접근 가능하게 함.(제한적 허용) 구현에서 간편함과 편리함을 위해 자식클래스에만 제한적으로 허용함. 상속관계가 아닌 다른 클래스에서는 private처럼 관리.(직접접근x). 정보 은닉 규칙을 파괴한다는 의견도 있음. class Student: protected Person { ... } -> 부모 클래스의 public 멤버.. 2024. 1. 5. call-by-pointer(return-by-pointer) vs call-by-reference 함수의 호출과 반환에서 포인터를 이용한 인수 전달 방법에 call-by-pointer(return-by-pointer)을 사용할 수 있다. 함수 호출 시 인수값을 복사하지않고, 인수가 저장된 곳의 주소(정보)를 전달하기 때문에 시간 부담이 적으며 메모리 공간 사용도 효율적임. 호출된 함수에서는 포인터를 사용하여 간접참조로 인수 내용을 직접 변경할 수 있음. call-by-reference(return-by-reference)방식의 경우 변수 이름을 직접 사용할 수 있어 &나 *와 같은 연산자를 별도로 사용하지 않아도 되는 장점이 있다. ( &: 변수나 함수의 주소를 찾아낼 때 사용, *: 포인터가 가리키고 있는 곳의 값을 읽거나 쓸 때 사용) /// call-by-pointer(return by valu.. 2024. 1. 3. js의 변수 선언 방법(var, let, const)와 var, let의 차이 | 호이스팅|TDZ js에서 변수를 선언하는 방법에는 세가지가 있다. ( const, var, let) const는 변수값을 고정시키고 싶을 때 사용한다.(값을 수정하려고 하면 error가 난다. ) C를 배웠다면 알다시피 C언어에도 const가 있다. 물론 추가적으로 #define이나 enum도 있겠다. C언어에서의 const와 js에서의 const는 의미 면에서는 비슷한 듯하다. 대개 읽기만 하는 값(read-only)이나 절대 변하면 안되는 값을 const로 선언하는 편. 참고로 const는 초기값 없이는 선언이 불가하다. var: 선언 시 메모리에 담아둔다. (함수가 실행되기 전에 메모리에 담아뒀던 변수들을 스코프 범위(scope:변수가 적용되는 범위)의 최상단으로 끌어올린다.) 이런걸 호이스팅(hoisting)이라.. 2024. 1. 3. 캡슐화란? 캡슐화의 장점 - 데이터 추상화, 정보 보호, 정보 은닉 캡슐화란? -데이터와 데이터를 처리하는 멤버 함수를 함께 포함하는 캡슐로 만들어 사용 -멤버함수는 데이터가 항상 정상적인 범위 내에서 유지될 수 있도록 관리 멤버 데이터 : 속성,값. 사용자 정보를 포함, 각 데이터에는 정상적인 범위가 지정되어있음. 멤버 함수: 데이터를 처리하는 기능을 구현. Private: 내부적으로 사용(내부적으로 보호가 되면서 사용가능). 멤버 함수에게만 직접 접근이 허용됨. 클래스 외부에서 private 데이터를 사용하기 위해선 public으로 공개된 인터페이스를 거쳐야함. Public: 외부적으로 사용할수 있게 허용(외부로 공개된 멤버) Friend :클래스의 함수는 아니지만 클래스 안에 있는 정보들을 자기가 직접 접속할 수 있게 허용해주는 것. 시스템이 정의한 객체들만 사용할.. 2024. 1. 1. time()함수와 performance counter 일반 time()함수의 경우, 초단위 경과시간을 측정하여, 아주 짧은 시간의 경우 측정이 잘 되지 않는 단점이 있다. 그래서 milli, micro단위와 같이 더 작은 단위로 경과시간을 측정할 수 있는 Windows 운영체제의 performance counter를 사용할 수 있다. 이를 사용할 때에는 #include 헤더 파일을 포함시켜야한다. LARGE_INTEGER freq, t_before, t_after; LONGLONG t_diff; double elapsed_time; // . . . 추가 정의 QueryPerformanceFrequency(&freq); //CPU clock의 frequency를 기록 (초당 몇번 계수가 되는지 기록한다.) QueryPerformanceCounter(&t_be.. 2023. 12. 31. 이전 1 2 3 4 5 6 7 8 ··· 18 다음