C++ Various overloading. 1.C++ Friend keyword friend Complex operator+(const Complex& a, const Complex& b); Complex operator+(const Complex& a, const Complex& b); 함수는 이제 Complex 의 friend 가 된다. 즉 Complex 클래스의 입장에서는 자신의 새로운 친구인 operator+ 에게 마음의 문을 열고 모든 정보에 접근할 수 있도록 허가하는 것이다. private 냐 public 이냐에 관계 없이 Complex operator+(const Complex& a, const Complex& b); 함수는 어떤 Complex 객체라도 그 내부 정보에 접근할 수 있다. C..
분류 전체보기
C++ Operator overloading. 1.Introduction C++ 에서는 사용자 정의 연산자를 사용할 수 있다. 무슨 연산자들이 가능하냐면, :: (범위 지정), . (멤버 지정), .* (멤버 포인터로 멤버 지정) 을 제외한 모든 연산자를 사용할 수 있다. +, -, * 는 물론이고, +=, -= 와 같은 축약형들이나 >=, ==, 와 같은 비교 연산자, && 와 같은 논리 연산자, -> 와 같은 멤버 선택 연산자, ++, -- 증감 연산자, [] 와 심지어 () 까지 (함수 호출 연산자) 도 모두 직접 만들 수 있다. 기본 연산자들을 직접 사용자가 정의하는 것을 연산자를 오버로딩(overloading) 한다고 부른다. 이전에 같은 이름의 함수를 인자만 다르게 사용하는 것을 '함수를 오버..
C++ Your own string class. 1.Introduction. 문자열 클래스를 만들어보자. 문자열 클래스는 아패와 같은 내용들을 지원해야 한다. 문자(char) 로 부터의 생성, C 문자열 (char *) 로 부터의 생성. 문자열 길이를 구하는 함수. 문자열 뒤에 다른 문자열 붙이기. 문자열 내에 포함되어 있는 문자열 구하기. 문자열이 같은지 비교. 문자열 크기 비교 (사전 순). 기존 C에서는 문자열을 나타내기 위해 널 종료 문자열(Null-terminating string)이라는 개념을 도입해서 문자열 끝에 NULL 문자를 붙여 문자열을나타내는 방식을 사용하였다. C++에서는 표준 라이브러리로 string 킇해스를 지원하고 있다. 일단 간단히 생각해서 우리가 만들 MyString 클래스..
Windows에서 VMware의 Ubuntu에 SSH로 접속하는 법을 알아보겠다. 위 화면이 기본 화면이다.우선 우분투에 SSH가 깔려 있는지 확인해본다. sudo dpkg -l | grep ssh 아니면 ssh 리스너가 존재하는 지 확인해봐야 된다. sudo netstat -lntp 안 보일수도 있어서 캡쳐 크기를 크게 했다.이 노트북은 현재 ssh패키지도 설치 안 되어 있고, ssh가 안 깔려 있어서 22포트에 리스너가 없는 상태. 아래의 명령어를 써서 ssh를 설치. 그 후 다시 패키지 확인.sudo apt-get install sshsudo dpkg -l | grep ssh openssh-server, ssh, ssh-import-id 즉 3개의 패키지가 추가로 설치되어 있는 것을 확인 할 수 있..
C++ Object-oriented programming. 1.C++ Function overloading. 함수 오버로딩이란 쉽게 말해 함수에 과부하를 주는 거라고 할 수 있다.C에서는 하나의 이름을 가진 함수는 딱 1개 씩만 존재하기 떄문에 함수 오버로딩이랑 상관 없다. Ex) scanf, printfC++에서는 같은 이름을 가진 함수가 여러 개 있어도 된다. #include using namespace std; void print (int x) { cout
C++ Everything in an object. 1.What is an object? 간단한 예제로 시작해보겠다. Deepsleep boy; boy.play(); // 내가 (boy가) Play 를 한다. boy.sleep(); // 내가 deepsleep 을 한다. play 함수에 boy를 인자로 주지 않아도 되는데, 내가 play를 하는 것이기 때문에 내 정보는 이미 play함수가 다 알고 있는 상황이다. play함수는 나의 모든 것을 알고 있기에 낭 대한 적절한 처리를 할 수 있게 된다. 즉 boy는 상태를 알려주는 변수와, 하는 행동을 수행하는 함수들로 구성되고 있다. 결국 객체는 변수들과 관련된 함수들로 이루어진 소프트웨어 꾸러미. 아래 그림과 같은 느낌? 객체는 자기만의 정보를 나타내는 변..
C++ Features of C ++ only. 1.Features of C ++ only. 언제나 메모리를 관리하는 문제는 중요했다. 그래서 컴파일 시에 모든 변수의 주소값이 확정되어야만 했다.제약이 있기 때문에 피하기 위해서 힙(Heap)이라는 공간이 따로 생겼다. 힙(Heap)은 자유롭게 할당하고, 해체할 수 있는 공간으로써 원하는 만큼 사용할 수 있는 공간이다.cf) 스택은 컴파일러에 의해 완벽히 확정되어 안정성이 보장된다.힙(Heap)은 사용자가 스스로 제어해야 하는 부분이다.C++도 C와 마찬가지로 malloc과 free함수를 지원하여 힙의 할당을 지원한다.여기에 C++은 new와 delete가 있다. new는 malloc과 대응하는 것이고, delete는 free에 대응하는 것으로 메모리를 ..