CPP (31) 썸네일형 리스트형 [C++] 연산자를 오버로딩 하는데 있어서의 주의사항 1. 본래의 의도를 벗어난 형태의 연산자 오버로딩은 좋지 않다.2. 연산자의 우선순위와 결합성은 바뀌지 않는다.3. 매개변수의 디폴트 값 설정이 불가능하다.4. 연산자의 순수 기능까지 빼앗을 수는 없다. [C++] 후위형 증감연산자 오버로딩 시 주의사항 const Point operator++ (int){ // ...} 1. 매개변수 위치에 int를 넣어준다. 이는 후위형 증감연산자 오버로딩이라는 약속이며 int라고 해서 특별히 정수형과 관련 있는것은 아니다.int가 없으면 전위형 증감연산자 오버로딩이 된다.2. 반환형을 const 객체로 한다.이는 Point pos; 라고 객체를 생성했을 때 (pos++)++; 와 같은 연산을 막기 위해서이다.++(++pos);는 허용이 되지만 (pos++)++; 는 허용되지 않는 문법이다. [C++] 대입 연산자 오버로딩 시 유의점 대입 연산자 오버로딩 시 해당 클래스에 동적 할당되는 메모리가 있다면 기존에 할당되어 있던 메모리를 해제해주고 나서 그 다음에 메모리를 할당해 주어야 한다. [C++] 클래스 템플릿 기반의 객체 생성 함수 템플릿을 사용할 때는 자료형을 명시해주지 않아도 넘겨주는 매개변수에 맞춰서 템플릿 함수가 생성이 되지만 클래스 템플릿은 반드시 자료형을 명시해 주어야만 한다. [C++] C++의 형변환 연산자 1. dynamic_cast(변환 대상)상속관계에 놓여 있는 두 클래스 사이에서 자식 클래스의 포인터 및 참조형 데이터를 기초 클래스의 포인터 및 참조형 데이터로 형 변환하는 경우class Car{ // ...}class Truck : public Car{ // ...}int main(void){ Car *pcar1 = new Truck(); Truck ptruck1 = dynamic_cast(pcar1); // 컴파일 에러 Car *pcar2 = new Car(); Truck *ptruck2 = dynamic_cast(Truck *>(pcar2); // 컴파일 에러 Truck *ptruck3 = new Truck(); Car *pcar3 = dynamic_cast(ptruck3); // 컴파일 OK .. [C++] 증감연산자(전위형 후위형) 전위형 연산자는 변수의 값이 사용되기 전에 먼저 1이 증가한 후 사용이 되고 후위형 연산자는 변수의 값이 사용되고 나서 그 다음에 1이 증가한다. 이는, ++x는 x += 1;x;로 치환되고 (x의 값을 먼저 증가시킨 후 x를 사용함) x++는 x;x += 1;로 치환된다고 생각하면 보다 쉽게 이해할 수 있다. (x를 먼저 사용하고 그 다음에 x의 값을 증가시킴) 예를 들어 x는 4로 초기화되어 있고 cout 가 있다고 한다면 위에 설명한 방법대로 치환하면 x += 1;cout 이 되고 4에서 1이 증가한 출력을 하므로 먼저 5가 출력되고 다시 1을 더한 후에 출력 하니 6이 출력되어 결과적으로 5와 6이 출력됨을 알 수 있다. 다음으로 후위연산자를 보면 마찬가지로 x는 4로 초기화되어 있다고 가정하고 .. [C++] 함수 오버로딩 출처 - http://cafe.naver.com/cppmaster/2601작성자 : 강석민(smk6809@yahoo.co.kr)출처 : cafe.naver.com/cppmaster, cafe.naver.com/ioacademy// 마음 대로 퍼 가셔도 되지만 출처는 반드시 밝혀 주시기 바랍니다.함수 오버로딩 ( Function Overloading )C++은 아주 복잡한 언어입니다. C가 가진 대부분의 것을 지원 하려고 했고, 추가로 객체 지향과 Generic 기법을 지원 하므로서 괴물처럼 커져 버린 언어입니다.때문에 많은 분들이 C++로 입문 할 때 어려움을 겪고 있습니다.하지만 C++이 어려운 만큼 C++을 어느정도 잘하게 되면 Java, C# 등의 새로운 언어를 아주 쉽게 배울수 있습니.. [C++] namespace 출처 - http://cafe.naver.com/cppmaster/11756.1 Namespaces 원리와 역사적 배경6.1.1 Namespaces 이면에 존재하는 원리Namespaces는 1995년에 C++ 표준으로 도입되었다.우선 왜 namespaces가 언어에 추가되었는지를 이해하기 위해서, 여기에 하나의 비유가 있다.당신의 컴퓨터에 있는 파일시스템이 디렉토리들과 서브디렉토리들을 전혀 가지지 않는다고 상상하자.모든 파일들은 항상 모든 사용자와 애플리케이션에게 보여지는 단순한 저장소에 저장될 것이다.결론적으로, 극단적인 어려움들이 발생할 것이다.파일이름들이 충돌 할 것이고(몇몇 시스템들은 파일 이름을 8개의 문자로 제한하고 + 확장자들을 3개의 문자들로 제한하고서도 이것은 빈번히 발생할.. 이전 1 2 3 4 다음