friend함수는, 클래스의 멤버함수가 아닌 다른 외부 함수에게 클래스의 모든 멤버를 접근할 수 있는 권한을 부여한다. 클래스의 멤버로 선언하기에는 무리가 있고, 클래스의 모든 멤버를 자유롭게 접근할 수 있는 함수를 작성할 때 쓰면 좋다. 프렌드 유형에는 3가지가 있다. 1) 전역 함수 예: // 외부 함수 equals() 가져오기 class Rect { ... friend bool equals(Rect r, Rect s); }; 2) 다른 클래스의 멤버 함수 예: // RectManager 클래스의 equals() 가져오기 class Rect { ... friend bool RectManager::equals(Rect r, Rect s); }; 3) 다른 클래스 전체 // RectManager 클래스의..
overloading: 이름만 같은 함수, 매개변수는 다르다 overriding: 완전히 같은 함수를 재작성 overloading은 함수 오버로딩, 생성자 오버로딩, 연산자 오버로딩 등 다양한 overloading이 있지만 연산자 오버로딩을 다뤄보려고 한다.. 원래의 +는 int나 float를 더하는 기능만 있다면 overloading을 통해서 행렬과 행렬을 더하는 기능으로도 확장할 수 있다. Matrix operator+(Matrix &another){ return Matrix(nums[0] + another.nums[0], nums[1] + another.nums[1], nums[2] + another.nums[2], nums[3] + another.nums[3]); } 전위증감과 후위증감... ht..
1. namespace란? 여러명이 서로 나누어 프로젝트를 개발하는 경우 오픈소스 여러개를 합치는 경우 이름이 충돌 나는 경우를 많이 겪어봤을 것이다. 그래서 생긴것이 namespace! namespace SweetDev { } namespace 안에서 생성된 변수, 함수는 그곳에서만 사용된다. 2. std란? C++표준에서 정의한 namespace중에 한 가지이다. cout, cin, endl등 자주 쓰는 함수들이 들어있다. std::cout을 매번 쓰는게 귀찮다면 using 명령어를 사용해서 해결할 수 있다. using std:: cout; using namespace std; 둘중에 하나로...
namespace 개념 여러명이 작업하다 보면 똑같은 함수 명, 변수 명 때문에 충돌날 수도 있는데 그런 실수를 방지하기 위한 개념이다. 개발자가 자신만의 namespace를 생성할 수 있고, namespace 안에 선언된 이름은 다른 namespace와 구분된다. namespace 선언하기 namespace 사용하기 std::란? 내가 정의한 SweetDev라는 namespace처럼, iostream헤더 안에 정의된 namespace중 하나이다. cout, cin, endl같은 함수들이 포함되어 있다. std::를 생략하고 싶다면? 파이썬처럼ㅎㅎ; cin과 >>를 이용해서 입력 받기 문자열 표현하기 1) c-string 방식 위의 선언은 그냥 단순 문자 배열이고, 두번째 Real선언만 C-string ..
// TODO
1. 주석 스타일은 C언어와 같다. (//, /**/) 2. void main()은 표준이 아니다. 내 경우에는 실행도 안됐다!! 3. main()에서 return 0을 생략하는건 문제가 없었다. 4. #include #include 에는 표준입출력을 위한 클래스, 객체, 변수들이 선언되어 있다. 5. count이 iostream에 들어있는 출력 스트림 객체인데, std namespace에서 선언하려면 std::cout으로 쓰면 된다. 6. > width >> height; 이렇게 쓸 수도 있다.