본문 바로가기

멤버 함수

[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 더보기
[C++] 연산자 오버로딩 (Operator Overloading)의 두가지 방법 연산자 오버로딩(Operator Overloading)은 C++ 문법과 우리와의 약속이라고 할 수 있는데, 우리가 함수를 정의하는데 이어서 operator라는 키워드와 연산자를 붙여서 함수의 이름을 만들 경우에 (operator + 이렇게 ) 우리가 일반적인 함수를 호출 방법 말고도, 연산자만을 이용해서도 함수가 호출 되도록 해주겠다는 이야기이다. 멤버 함수에 의한 오버로딩 #include using namespace std; class Point { private: int x, y; public: Point(int _x=0, int _y=0):x(_x), y(_y){} void ShowPosition(); Point operator+(const Point& p); }; void Point::ShowPo.. 더보기
[C++] 클래스에서의 멤버 변수, 멤버 함수의 상수화 (const의 사용법) 일단 const에 대해서는 이미 언급을 해 놓았죠. [C/C++] 콘스트(const)란? (←링크 참조) 그럼 C++에서 클래스라는 곳에서는 어떻게 쓰이는지 한번 알아 보도록 하겠습니다. const 멤버 변수 : 우선 예제를 먼저 보도록 하겠습니다. #include using namespace std; class Student { const int id; int age; char name[20]; char major[30]; public: Student(int _id, int _age, char* _name, char* _major) { id=_id; //에러 age=_age; strcpy(name, _name); strcpy(major, _major); } void ShowData() { cout 더보기