2CHAECHAE 학교생활/객체지향프로그래밍(C++)19 [ 객체지향프로그래밍(C++) 7주차 ① ] [ 7주차 - 1 ] 클래스 멤버 변수에 초기값 ( 멤버 함수 이용 ) #include using namespace std; class myclass { private: int a; // 전용데이터 public: int b; // 공용 데이터 void setab(int i); // 공용 함수 int geta(); void reset(); }; void myclass::setab(int i) { a = i; //a를 직접 참조 b = i * i; // b를 직접 참조 } int myclass::geta() { return a; } void myclass::reset() { setab(0); // 다른 멤버 함수를 호출하는 것도 가능 } int main(){ myclass ob; //ob 객체 생성 ob.s.. 2022. 4. 16. [ 객체지향프로그래밍(C++) 6주차 ② ] [ 6주차 - 2 ] 클래스 1. 클래스( class ) - 객체( object )의 형식을 명시하는 새로운 자료형을 정의한다. - 데이터와 그 데이터 상에 동작할 코드를 포함 - 데이터와 코드를 연결 - 객체를 만드는 방법을 명시하는 계획들의 집합 - 구성요소 ⓐ 멤버 변수 : 클래스 내에 선언된 변수 ⓑ 멤버 함수 : 클래스 내에서 선언된 함수 - 키워드 class를 사용함으로써 생성 2. 객체 : 클래스의 인스턴스( instance ) 클래스의 변수를 선언할 때 그 클래스의 객체가 생성된다. 객체는 물리적인 메모리를 가지고 있다. ( 클래스 정의는 메모리 공간을 가지고 있지 않다. ) ▶클래스는 자료형이고, 그 클래스의 변수 부분을 클래스의 객체 또는 인스턴스라 부른다. #include using .. 2022. 4. 11. [ 객체지향프로그래밍(C++) 6주차 ① ] [ 6주차 - 1 ] 구조체 ( structure ) 구조체 : 하나의 이름으로 참조되는 변수들의 모임으로 군집 자료형 ( aggregate data type ) 이라고도 하며, 복합 ( compound ) 자료형이라 부른다. 멤버( member ) : 구조체를 구성하는 변수 ( 원소( element ) 또는 필드( field ) 라고도 부름 ) struct struct-type-name { type element_name1; type element_name2; type element_name3; type element_name4; ... }struct_variables; 메모리에 저장된 inv_var 구조체 struct inv_type{ char item[40]; //40byte double cost;.. 2022. 4. 11. [ 객체지향프로그래밍(C++) 5주차 ② ] [ 5주차 - 2 ] const 접근자 1. const로 선언된 변수는 프로그램의 실행동안 값 변경이 불가능하며, 초기값만 줄 수 있다. ex) const double version = 3.2; 2. 용도 - const 포인터 매개변수 생성 → 매개변수가 가리키는 대상이 함수에 의해 수정되는 것을 방지 - 참조 매개변수에 사용 → 함수에서 참조 매개변수가 참조하는 변수를 수정하는 것을 방지 - 이름을 갖는 상수 생성 ⓐ const 포인터 매개변수 생성 #include using namespace std; void code(const char *str); int main() { code("this is a test"); return 0; } //const 사용은 str이 가리키는 인수를 수정할 수 없다는 .. 2022. 4. 1. [ 객체지향프로그래밍(C++) 5주차 ① ] [ 5주차 - 1 ] 함수 : 참조, 중복, 디폴트 인수 1. 값에 의한 호출 ( call by value ) - 인수의 값을 함수의 형식 매개변수로 복사 - 함수의 매개변수 변화는 호출한 함수의 인수에게 영향을 주지 않음 → 인수와 매개변수 사이에는 인수의 값이 매개변수에 복사되는 것 이외에는 서로 아무런 연관성이 없다. #include using namespace std; int sqr_it(int x); int main() { int t = 10; cout 2022. 4. 1. [ 객체지향프로그래밍(C++) 4주차 ② ] [ 4주차 - 2 ] 함수 전역변수와 지역변수의 이름이 같을 때는 지역변수에 우선순위가 있음 포인터와 함께 함수 호출 1. 포인터와 함께 함수 호출 → 함수의 매개변수를 포인터 형으로 선언 → 포인터를 사용하는 함수 내의 연산을 수행할 때, 그 포인터가 가리키는 변수에서 작동 2. 배열과 함께 함수 호출 → 함수의 매개변수를 배열 또는 포인터로 선언한다. → 함수 호출시에 배열에 대한 오직 하나의 포인터만이 전달된다. → c++는 배열의 경계를 확인하지 않으므로 배열의 실제 크기는 중요하지 않다. 3. 문자열 전달 → 문자열이 함수에 전달될 때, 그 문자열의 시작에 대한 포인터가 실제 전달된다. #include using namespace std; void f(int *j); int main() { in.. 2022. 3. 28. [ 객체지향프로그래밍(C++) 4주차 ① ] [ 4주차 - 1 ] 포인터 포인터란 메모리 주소를 포함하는 변수로써 다른 변수의 위치 값(주소)을 저장하는데 사용한다. // 포인터의기본형 *포인터변수의이름 int *p; // 정수에 대한 포인터 // p는 int형 변수의 주소를 저장한다는 것이다. // p에는 다른 자료형의 변수의 주소를 저장하면 안된다. & : 피연산자의 메모리 주소를 반환하는 단항 연산자 balptr = &balance // balance 변수의 메모리 주소를 balptr에 넣는다. * : 피연산자에 의해 명시된 주소에 위치한 변수의 값을 반환하는 단항 연산자 value = *balptr // balance의 값을 value에 넣는다. // *는 balptr이 가지고 있는 주소에 해당하는 변수의 값을 value에 넣어준다. #in.. 2022. 3. 24. [ 객체지향프로그래밍(C++) 3주차 ② ] [ 3주차 - 2 ] 일차원 배열 #자료형 배열의이름[원소의개수]; int sample[10]; 배열의 크기 = 자료형의 바이트 수 * 원소의 수 #include using namespace std; int main() { int sample[10]; for (int t = 0; t < 10; ++t) { sample[t] = t; } for (int t = 0; t < 10; ++t) { cout 2022. 3. 21. [ 객체지향프로그래밍(C++) 3주차 ① ] [ 3주차 - 1 ] if 조건식 0은 자동으로 false로 변환되고, 0이 아닌 값은 true로 변환된다. #include using namespace std; int main() { int a, b; cout > a >> b; if (b) { cout 2022. 3. 21. 이전 1 2 3 다음