본문 바로가기

namespace

[C++] 쉬프트 연산자 오버로딩 (cout, cin, endl) 쉬프트 연산자 : 쉬프트 연산자란, 우리들이 흔히 쓰는 cout, cin, endl 키워드를 쓸때 앞이나 뒤에 붙이는 연산자이다. 일반적으로 표준 라이브러리에 std라는 namespace에는 cout이나 cin에 관련된 클래스들이 있다. 그것이 바로 istream과 ostream이다. 이런 namespace를 일일이 입력하기 싫어서 using namespace 라는 간편한 문법을 쓰기도 한다. C++에서는 이런 쉬프트 연산자도 연산자 오버로딩이 가능하다. 쉬프트 연산자 오버로딩 int main(void) { Point p(1, 3); cout 더보기
[EC++] 항목 4. 객체를 사용하기 전에 반드시 그 객체를 초기화하자 대입과 초기화를 구분하자 class B {...}; class A { public: A(const std::string& name, const std::string& address, const std::list& phone); private: std::string theName; std::string theAddress; std::list thePhone; int num; }; A::A(const std::string& name, const std::string& address, const std::list& phone) { thName = name; theAddress = address; thePhone = phone; num = 0; } C++규칙에 의하면 어떤 객체이든 그 객체의 데이터 멤버는 생성.. 더보기
[C++의 특징 - 2] 인라인 함수(Inline Function) 와 네임스페이스(Namespace) 이전에 C에서는 매크로 함수라는게 있었습니다. C++에서는 이것과 똑같은 기능을 하는것이 바로 인라인 함수 입니다. 우선 매크로 함수에 대해서 살짝 알아 보면... 1. 매크로 함수 (Macro Function) : 전처리기에 의해 처리 되면서, 매우 빠른 실행의 이점을 가지게 되는 함수이다. 아래와 같이 선언해 쓰고, 매크로 함수는 데이터형에 영향을 받지 않는 특징을 가지고 있다. #define Square ((x) * (x)) 하지만 왜 C++에 와서 그대로 매크로 함수를 쓰지 않고 인라인 함수라는 것을 새로 만들어서 사용하는 것일까? 그 이유를 한번 알아 보자. 2. 인라인 함수 (Inline Function) : C와의 매크로 함수와 같지만, 인라인 함수는 컴파일러단에서 처리되면서, 구현이 용이 .. 더보기