130 likes | 312 Views
구조체 / 클래스. Java 교육생 여러분 ! 오늘 WiBro 개소식 시연으로 인하여 부득이하게 휴강을 하게 되었습니다 . 양해 부탁 드리며 , 자료를 바탕으로 충실히 공부해 주시기 바랍니다 . 열심히 공부하는 조건으로 조만간 시간을 만들어 꼭 맛나는 것 사드리도록 하겠습니다 . 화이팅 !!. 구조체와 클래스. 클래스는 사용자가 원하는데로 정의하여 사용하는 새로운 데이터 타입 이다 . 이 점을 꼭 명심하시기 바랍니다. #include <iostream.h> Void main() {
E N D
구조체 / 클래스 Java 교육생 여러분! 오늘 WiBro 개소식 시연으로 인하여 부득이하게 휴강을 하게 되었습니다. 양해 부탁 드리며, 자료를 바탕으로 충실히 공부해 주시기 바랍니다. 열심히 공부하는 조건으로 조만간 시간을 만들어 꼭 맛나는 것 사드리도록 하겠습니다. 화이팅!!
구조체와 클래스 • 클래스는 사용자가 원하는데로 정의하여 사용하는 새로운 데이터 타입 이다. 이 점을 꼭 명심하시기 바랍니다. #include <iostream.h> Void main() { int a; a=5; } int와 같이 데이터타입을 여러분이 원하는 형태로 만들어서 사용하는 것이 이 과의 주제입니다.
구조체 정의 • 정의부는 아직 프로그램 내부로 들어가지 않은 부분입니다. 프로그램 시작 전 우리가 원하는 형태의 새로운 데이터타입을 구성하는 단계라고 생각하시면 됩니다. #include <iostream.h> struct person { int nAge; double nWeight; }; void main() main() 함수가 실행되지 않았는데 여기서 작성된 부분은 무엇을 하고 있는 것일까요? 옆 친구와 상의해서 생각해 보시기 바랍니다. 다음페이지 계속..
구조체 정의 • 정의부는 아직 프로그램 내부로 들어가지 않은 부분입니다. 프로그램 시작 전 우리가 원하는 형태의 새로운 데이터타입을 구성하는 단계라고 생각하시면 됩니다. #include <iostream.h> void main() { person john; : : } C++에서는 person이란 데이터 타입은 없습니다. 그럼 john이란 변수는 어떻게 선언된 것일까요? 위 페이지에서 확인바라며 구조를 그려봅시다.
변수선언 • 위에서 작성한 데이터 타입을 이용하여 john이란 변수를 선언한 예제입니다. 과연 다음과 같이 값의 대입이 가능할까요? #include <iostream.h> void main() { person john; john=5; } person이란 데이터 타입은 두 개의 변수가 있습니다. 다음과 같이 작성하면 어느 곳으로 들어갈지 알 수 있을까요?
값 대입 • 구조체는 배열과는 다르게 서로 다른 데이터 타입을 한 덩어리로 묶을 수 있습니다. 그럼 값 대입 시 구조체가 가지고 있는 여러 개의 맴버 변수 중에서 어디에 넣을지 구분 짓는 방법을 생각해 봅시다. #include <iostream.h> void main() { person john; john.nAge=5; john.nWeight=70; }
구조체 포인터 • 구조체 포인터는 일반 포인터와 동일하게 생각할 수 있습니다. 다만, 맴버 변수에 접근 시 . 대신 →를 사용하게 됩니다. #include <iostream.h> void main() { person john; person* p; p=&john; p→nAge=5; p→nWeight=70; }
strcpy 함수 • 예제를 작성하기 전에 문자(string)복사(copy)함수에 대하여 잠깐 알아볼까요? #include <iostream.h> #include <string.h> void main() { char name[32]; strcpy(name,”korea”); cout<<name<<endl; } strcpy(char*, “문자열”); 형태로 됩니다. 그러면 문자열이 자동으로 문자열 포인터로 복사가 되는 함수입니다. 왼쪽의 예제를 별도로 실행해서 익혀 봅시다. 이 부분에서 문자열 배열의 이름과 주소의 관계도 생각해 보시기 바랍니다.
예제 #include <iostream.h> #include <string.h> struct Animal { char name[32]; int age; }; void main() { Animal doggy; strcpy(doggy.name,”doggy”); doggy.age=8; Animal* pPet=&doggy; pPet->age=10; cout<<pPet->name<<endl; cout<<pPet->age<< endl; } ♠ 이 페이지의 핵심은 구조체 포인터를 이용한 맴버변수의 접근 입니다. 본 내용은 MFC를 이해할 때 많이 활용 됩니다.
예제 #include <iostream.h> #include <string.h> struct Animal { char name[32]; int age; void Show(); }; void Animal::Show() { cout<<“이름:”<<name<< “나이:”<<age<<endl; } void main() { Animal doggy; strcpy(doggy.name,”doggy”); doggy.age=8; Animal* pPet=&doggy; pPet->age=10; pPet->Show(); } ♠ 이 페이지의 핵심은 맴버 간에는 통신이 가능하다 입니다. 무슨말인지 꼭 고민해 보시길..
예제 #include <iostream.h> #include <string.h> class Animal { private: int age; public: void SetAge(int p); int GetAge(); }; void Animal:: SetAge(int p); { age=p; } int Animal:: GetAge(); { return age; } void main() { Animal doggy; doggy.SetAge(5); cout<<doggy.GetAge()<<endl; } ♠ 이 페이지의 핵심은 사용권한으로 보호된 맴버변수에 맴버함수를 이용하여 접근하는 방법 입니다.
비 IT 학생들 비 IT 출신 학생들은 제어문 및 함수에 관하여 자료를 정리 중에 있습니다. 함수부분은 개별적 작업보다는 전체적으로 어떻게 모여서 어플리케이션이 구성되는지가 더욱 중요합니다. 최대한 이해가 쉬운 방향으로 자료를 재 정리하고 있으니 내일 오프라인 상에서 서로 직접 얼굴을 맞대어 이해를 하는 방법이 좋을 것이라고 판단 했습니다. 오늘은 책을 보며 각 제어문 들 중에서 가장 쉬운 예제들을 따라서 천천히 작성해 보시기 바랍니다. 내일 설명을 할 때 한번 해보고 나면 이해가 훨씬 쉬울 것이기 때문입니다. 빡빡한 일정속에서도 처음이라 쉽지 않겠지만 계속해서 반복하여 정리하 는 시간을 가지니 너무 조급해 하시지 마시고 천천히 작성을 하다보면 어 느덧 프로그램이 친근하게 다가오는 날이 있을 것입니다. 모두들 파이팅 하세요!!