
네임스페이스 "소속 그룹"을 만들어 동명의 객체를 구별하라 "C/C++에서는 같은 스코프에 같은 이름의 전역 변수나 함수를 만들 수 없다." 위 조건을 만족시키며 프로그램을 만드는 것은 프로그램의 규모가 커질 수록 힘든일이 된다. 하여, 이를 구별하고자 등장한 것이 네임스페이스이다. 동일한 함수, 변수, 상수명을 가졌지만 기능이 완전 다른 두 개의 스코프가 존재한다면, 이는 네임스페이스로 구별지어주어 두 가지 네임스페이스가 동시에 사용되는 경우 구별지어 사용해 줄 수 있다. 적고보니 복잡하다. 코드로 보자 개와 고양이 내용이 한 공간에 저장 // Dog string name; int hunger; void Voice() { std::cout

다른 언어를 사용하다 파이썬을 사용하면 정말 적응하기 힘든 것 같다. 오늘 크게 충격 받은 것은 l-value와 r-value의 개념 자체가 다른 것 같다.... 일단, 파이썬의 모든 값은 자신만의 공간이 있다. 이는 id함수를 통해 확인이 가능하다. (그냥 코드만 보자면, 우리가 아는 l-value가 포인터라고 생각하면 좀더 편하게 생각할 수 있다..... 절대 진짜 포인터라는 것은 아니다.) 3#140724586779496 a = 3 b = 3 print(id(3))#140724586779496 print(id(a))#140724586779496 print(id(b))#140724586779496 위 코드를 통해 '3'이라는 값 자체도 id를 가지고 '3'을 받는 'a'와 'b' 모두 3을 할당 받으..
함수 특정 목표를 가진 하나의 기계 이번 장에서는 함수에서 중요한 '오버로딩'과 '함수 원형', '디폴트 매개변수'에 대해 알아보자. 함수 오버로딩 어떠한 언어를 사용하든 중복된 이름의 변수와 클래스, 함수를 방지하거나 변경하도록 유도한다. 중복이 가능해진다면, 컴퓨터나 사용자 모두 혼란을 겪을 수 밖에 없기 때문이다. 하지만, 같은 기능을하는 함수를 다양한 상황과 매개변수를 받을 수 있어야하는 경우가 있다. int Sum(int a, int b) { return a + b; } int SumFloat(float a, float b) { return b + a; } 위와 같이, Sum함수는 간단한 덧셈을 반환합니다. (간단한 예제를 위해 만든 예제입니다.) 그런데 각 Sum은 다른 자료형을 받아 반환하는..