컴퓨터 수업/C++(39)
-
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 -
C++ 템플릿에 관한 얘기
1. class ItemType을 메소드의 어디까지 붙여야되는걸까? 이건 컴파일이 되지만, 이건 컴파일이 안됀다. VecType이란 클래스는 없다. 라고 생각해야한다. class를 template class로 선언했기 때문에, 이를 기본 클래스로 구현할 수 없다. 컴파일러 : VecType은 뭐지?, VecType은 템플릿 클래스라 식별자가 들어가야되는데... 당연하게도 다음 구문도 컴파일되지 않는다. 요것도 안됀당 2. VecType 클래스의 내부에서 클래스를 파라미터로 받는 메소드는이 지정되어야할까? 그리고 해당 클래스의 인스턴스를 반환할때 을 지정해줘야 할까? 2-1 VecType VecType 아니다 ㅡㅡ 의 메소드가 VecType의 인스턴스를 파라미터로 받을 떄, 을 지정해줘야되는가? 잠깐 ! ..
2020.10.26 -
CLion 인코딩
Clion인코딩에 대해서 신경써야 할 것은 총 7가지이다. 1. Settings -> FileEncoding -> Global Encoding 2. Settings -> FileEncoding -> Project Encoding 3. Settings -> FileEncoding -> Properties Encoding 4. VM option 5. Source Code Settings (우측하단) 6. CMAKE execution 명령어 7. 시스템 로켈 언어 내가 해야 할 설정은 다음과 같다. 2를 UTF-8로 5를 UTF-8로 6을 CP949로 7을 CP949로 디버깅이 하고싶다면 cp를 65001로 설정하고 디버깅해야한다. 불편...ㅠ 이러면 6을 풀어줘야한다. 왜 UTF-8 (CLion defaul..
2020.10.24