All(78)
-
운영체제의 개요<정의,역사,구조>
이 내용은 를 참고해서 작성했습니다. 운영체제의 정의 User와 hardware의 interface 소프트웨어 ex) 예를 들어 내가 어떤 게임을 하고 있다 할 때(User가 User application program을 켠다), 이 프로그램은 OS에 의해 메모리로 올라와 프로세스화 되며, 이 프로세스는 당연하게도 어떤 연산을 필요로 할 것이다. 이런 연산은 CPU가 수행한다. 따라서 OS는 현재, 내가(User) 실행하는 프로그램(User application program이 프로세스화 된 것)이 필요로 하는 연산을 수행해야 하는데, 이때 CPU를 나(User)에게 할당해 준다. 따라서 정리하자면, 나는 OS를 통해 hardware를 할당받은 것이다. ex) OS는 여러 일을 하지만, 가장 근본적으론 ..
2020.10.28 -
-> operator는 역참조 연산자인가?
(*ob1).get(); ob1->get(); 두 statement는 같다. 다만 ob1은 포인터변수로 선언되었기에, 역참조를 해야 해당 메소드를 호출 할 수 있다. 따라서 -> operator는 역참조 연산자가 맞다.
2020.10.27 -
const는 언제?
파라미터로 const & 객체를 받을 경우, 해당 객체의 메소드 스코프는 const 메소드로 제한된다. 설령 const가 아닌 메소드를 호출하였을때, 정상적으로 호출 되더라도, 이는 컴파일러의 재량이기 때문에, explicit하게 코딩해야한다.
2020.10.27 -
reference return은 대체 언제...?
예시 함수 내부에서 stack memory binding을 한 변수는 레퍼런스로 반환해도 해제되고만다. 따라서 (heap에 할당한 포인터를 반환하는것이 아니라면) 파라미터로 레퍼런스 타입을 받았을때, 해당 객체나 변수를 반환하는 형태가 아니라면 레퍼런스 리턴은 주로 하지 않는다. 그니까 위에서 ostream 객체 레퍼런스로 받았으니까 , 그거 그대로 레퍼런스로 반환하는 형태 아니면 레퍼런스 반환같은거 안한다고 예를들어 객체끼리 +연산자 오버로딩할 때 반환을 레퍼런스로 하지않잖아
2020.10.27 -
생성자 오버로딩, 어디까지 ambiguous 한가.
Summary: 1. 인스턴스를 인수없이 생성하려면 (ex. Cat frisky;) 생성자는 유일하게 하나여야한다. 2. 따라서 다음과 같이 인수없는 생성자와, 인수있는 생성자가 존재할때는 명시적으로 생성자를 호출하지 않으면 컴파일 에러가 난다. 따라서 우려와달리, 어떤 생성자를 컴파일러가 선택할까? 라는 의문은 갖지 않아도된다.
2020.10.27 -
콘솔,파일 출력 연산자 오버로딩 (+=프렌드)(+=템플릿 객체에 대해서)(** 요약필요)
(프렌드) 바운드, 언바운드 : blog.plorence.kr/528 (프렌드) introvert, extrovert : stackoverflow.com/questions/4660123/overloading-friend-operator-for-template-class 출력 연산자 오버로딩의 예시 (호출부) cout
2020.10.26