백준 1330번 - 두 수 비교하기
#include using namespace std; int main() { int A, B = 0; cin >> A >> B; if (A > B) { cout
#include using namespace std; int main() { int A, B = 0; cin >> A >> B; if (A > B) { cout
피타고라스 정리를 활용하면 된다. 여기서 주의해야할 건, 실제 값과 비율을 구분해야한다는 것이다. 여기서 비율은 변수_rate로 변수를 구분했다. #include #include using namespace std; int main() { int D, H_rate, W_rate = 0; int H, W = 0; cin >> D >> H_rate >> W_rate; double D_rate = sqrt(H_rate * H_rate + W_rate * W_rate); double cent = D / D_rate; H = H_rate * cent; W = W_rate * cent; cout
() 연산자를 오버로딩했다. return 형식을 잘 보면 m_counter += i; 즉 m_counter에 값을 더하고 m_counter을 return 하고 있다. 현재 printInt함수의 인자는 int형이다. 그런데 cents는 엄연히 Cents의 객체이기에 형이 맞지 않다. 하지만 우리의 의도는 cents는 int m_cents 하나 이거 보내고 싶은건데 방법이 없을까? 방법은 생각보다 심플하다. 즉, 내가 객체를 int형으로 casting하면 되잖아. 하지만 그렇다고 무작정 int(cents)해선 안되겠지. cents안에는 m_cents 말고도 수많은 함수들과 멤버들이 있을 수 있으니 우리가 따로 그 기능을 하는 함수를 만들어줘야한다. 지금 같은 경우 operator int()으로 int형으로 ..
cents1 과 cents2를 더하고 싶다. 더하는 기능을 함수로 구현해보았지만, 보기에 매우 불편하다. 그냥 int형끼리 더하는 것처럼 + 로 해결할 수 없을까? 그러한 고민의 해답으로 나온 것이 연산자 오버로딩이다. 함수 이름을 연산자로 선언해서 함수처럼 활용하게 하는 것이다. 현재 operator + 함수는 인자를 두 개 받아들이고 있다. 물론 클래스 바깥이면 접근이 불가능하니 인자를 두 개로 받는 것이 맞다. 그런데 클래스 안이면 굳이 인자가 두 개 필요할까 싶은 의문이 든다. 왜? 이미 클래스 안에서 내가 this->를 이용해 하나를 이미 쓸 것이기 떄문이다. 인자는 하나만 받고, 실제 코드에서 this->를 활용해 접근이 가능함을 보여준다. 딱 저 형태만 봤을 때, 아 인자가 하나인데 이 하나..
현재 Chapter 8-8 프로젝트 안에는 Calc.h 헤더파일, 8-8 cpp(main file), Calc.cpp 이렇게 3개의 파일이 있다 가정해보자. 보통 헤더파일에는 우리가 prototype들만 넣어놓는다고 배웠다. 그래서 프로토타입들만 헤더파일에 넣어놨다. main 함수에서 해당 클래스들을 사용하려면 당연히 내가 만들어놓은 헤더파일을 include해줘야겠지. 주의할 건 내가 만든 헤더파일은 로 넣는게 아닌 , " " 로 넣어준다는 것! 그리고 클래스를 구현한 파일은 Calc.cpp로 따로 만들어놨다. 비쥬얼 스튜디오 내에선 프로젝트 단위로 컴파일이 진행되니, 컴파일을 하면 main함수가 담긴 cpp와 Calc.cpp가 같이 진행되겠지. 보통 우리가 처음 클래스를 헤더파일 내에서 구현하고..
변수를 일일이 선언한 다음에 인자로 다 보내는 건 확실히 불편함이 느껴진다. 그리고 이걸 또 저런 변수들을 가지는 여러 instance들을 만들고 배열로 활용하는 건 너무 불편하다... 관리가 힘들고.. 그래서 나온게 구조체이다. 말 그대로 여러 변수들을 하나로 묶은 것이다. 만약 출력하는 함수를 구현한다고 하면 어떻게 해야할까? 인자를 구조체로 통째로 받아서 출력함수를 구현하면 훨씬 편하지. 보통 구조체와 클래스의 차이를 많이 헷갈리는데. 관습상, 구조체는 변수들만 묶을 때 주로 사용하고 클래스는 변수와 '메소드(기능)'을 묶을 때 사용한다. class의 경우 access specifier, 즉 어떤 변수나 메소드의 접근 여부를 제한할 수 있는데 이건 추후 설명. public, private, prot..
* 블로그에 작성된 따라배우는 C++ 관련 모든 코드와 사진들의 저작권은 강의의 저자이신 홍정모 교수님께 있습니다. 인프런 사이트(www.inflearn.com)의 '홍정모의 따라하며 배우는 C++' 유료강좌를 실제로 구매하였고 강의를 수강하며 제 스스로 복습 및 내용 정리를 위해 강의에 나오는 코드들을 따라친 코드와 교수님의 말씀, 그리고 강의에 나오는 사진들을 활용하였음을 미리 알립니다. 마지막으로, 좋은 강의를 제작해주신 홍정모 교수님께 감사드립니다. ______________________________________________________________________________________________ assert , 단언하기 기능을 배웠다. 이 기능은 배포(release) 모드가 ..
* 블로그에 작성된 따라배우는 C++ 관련 모든 코드와 사진들의 저작권은 강의의 저자이신 홍정모 교수님께 있습니다. 인프런 사이트(www.inflearn.com)의 '홍정모의 따라하며 배우는 C++' 유료강좌를 실제로 구매하였고 강의를 수강하며 제 스스로 복습 및 내용 정리를 위해 강의에 나오는 코드들을 따라친 코드와 교수님의 말씀, 그리고 강의에 나오는 사진들을 활용하였음을 미리 알립니다. 마지막으로, 좋은 강의를 제작해주신 홍정모 교수님께 감사드립니다. ______________________________________________________________________________________________ vector을 우린 전에 std::array와 함께 배웠다. vector는 동적할..