C++ thumbnail list [C++] 객체지향 프로그래밍 - 클래스와 객체 (2) 객체와 멤버변수class Account{public: bool Withdraw(double amount) // 출금 { if (balance - amount 멤버 변수는 하나의 객체에 종속된 것이 아니다. 각 개체마다 독립된 멤버 변수를 사용한다.위 코드에서 kim_account, lee_account는 서로 다른 객체이기 때문에, 서로 독립된 balance를 갖는다.따라서 각각의 balance 값은 100, 200이 될 것이다. 멤버 변수를 클래스 밖에서 정의하기class Account{public: bool Deposit(double amount);private: std::string name; double balance = 0; };bool Account::Deposit(double a.. [C++] 객체지향 프로그래밍 - 클래스와 객체 절차적 프로그래밍이란?데이터와 작업(함수)가 분리되어 있는 개념즉, 데이터는 함수의 매개변수로 입력될 뿐이며 이후 함수의 동작에 의해 작업이 수행되어 output이 출력된다.굉장히 이해가 쉬운 방식이다. 절차적 프로그래밍의 단점어떤 함수에 모든 형식의 데이터가 입력될 수 있는 것이 아니다. 👉 func(int ~) 처럼, 함수에 입력될 수 있는 데이터의 형식이 지정되어 있다.따라서 함수가 데이터의 구조를 정확히 알고 있어야 하며, 데이터가 변하면 함수의 수정 또한 필요하다.이를 데이터와 함수가 Tightly coupled 되었다고 말하는데, 이는 함수의 재사용성을 낮추는 좋지 못한 특성이다. (loosely coupled한 프로그래밍을 작성하는 것이 좋다)이 경우 프로그램의 규모가 작을 때는 큰 문제.. [C++] 참조자 Reference 참조자란?변수가 아니다. 👉 변수는 메모리 공간을 차지한다. 하지만 참조자는 메모리 공간을 차지하지 않는 '변수의 별명' 이다. (엄청난 장점)선언과 동시에 반드시 초기화 되어야 한다. 👉 참조자는 Null 값을 가질 수 없다. 포인터의 경우에는 int* a; 처럼 초기화 하지 않은 선언이 가능했지만, 참조자의 경우에는 int& a=b; 처럼 반드시 변수를 입력해주어야 한다.Const pointer이면서, 사용시 자동으로 역참조를 수행함 👉 포인터의 편리한 버전이라고 생각하면 편하다.함수의 매개변수로 자주 사용 #include using namespace std;int main(){ int a = 10; int& b = a; b = 20; cout Error} 위 코드의 결과는 20포인터에서도 그.. [C++] 포인터를 함수에 input, return 포인터를 함수의 인자로 전달#include using namespace std;void double_data(int* int_ptr){ *int_ptr *= 2;}int main(){ int value = 10; cout 함수 double_data는 input 인자로 int* int_ptr을 받고 있다. 👉 어떤 변수의 주소인 포인터를 입력으로 받아 처리하는 함수를 생성하는 것이 가능하다.해당 함수 내부에서 *int_ptr *= 2; 👉포인터에 저장돼있는 변수에 역참조하여 실제 값을 2배 곱한다. 포인터의 Returnint* largest_int(int* int_ptr1, int* int_ptr2){ if (*int_ptr1 > *int_ptr2) return int_ptr1; else r.. 이전 1 다음