C++/기타

    [C++] 소숫점 고정해서 출력하기

    소숫점 고정 cout

    [C++] 배열을 매개변수로 받는 다양한 방법

    C++ 사용자라면, 매개변수를 받을때 참조(&)로 받는 것이 효율적이고 자주 사용한다는 것을 알 것입니다. 근데 배열은 어떤식으로 받아야 효율적일까요? 그 방법들을 소개하고자 합니다. 불가능한 방법 일단 이런 형식을 생각해 볼 수 있겠습니다. (받는 것이 10칸짜리 배열이라 가정) void func(int &arr[10]) { } 그냥 다른 참조 쓰듯이 똑같이 int &arr[10] 이런식으로 매개변수를 받을 수 있을까요? 정답은 불가능 입니다. c++에서 위와같은 문법은 금지되어 있습니다. [ ]의 연산 우선순위가 &보다 높기 때문에 괄호가 없다면 int &(ref[3]) 과 같이 선언되기 때문이라고 생각합니다. 포인터로 배열 받기 void func(int* arr) { } 위 방법은 가능합니다. 흔한..

    friend 클래스와 함수

    (출처: https://yeolco.tistory.com/116 ) [열코의 프로그래밍 일기:티스토리] ☞ freind 클래스란? firend 클래스는 friend로 선언된 다른 클래스의 private 및 protected 멤버에 접근할 수 있습니다. 특정 상황에서 클래스 내에 접근하지 못하도록 private 제한을 두었는데, 필요의 경우 해당 클래스나 함수에서 접근 가능하도록 사용하는것이 friend 클래스 및 함수입니다. 사용법은 friend 키워드를 사용하여 클래스나 함수를 명시 해 주는 것 인데요. 아래 예제는 friend 클래스를 지정해주는 예제코드입니다. #include #include using namespace std; class Friend1 { private : string name; ..

    연산자 오버로딩(Operator Overloading)에서의 Const사용법

    연산자 오버로딩에 대해서 보다가 Const위치에 따른 영향이 헷갈려서 포스트를 올립니다. (출처: https://ally10.tistory.com/24) const Point operator+(const Point& target) const { Point ret; ret.x = this->x + target.x; ret.y = this->y + target.y; return ret; } Point A, B; Point C = A+B; 와 같은 연산을 위한 오버로딩입니다. function name앞의 const는 A+B의 결과물인 임시 객체가 C로 할당되기까지 변하지 않는다는 의미이며, 파라미터에 붙은 const는 피연산자에 대한 정의입니다. 즉 A+B에서 B가 피연산자이므로, B가 변하지 않는것을 보장합..