imported>korin0925 |
imported>hskim327 |
| (11 intermediate revisions by 3 users not shown) |
| Line 1: |
Line 1: |
| '''Object Oriented Programming Study''' | | = '''Object Oriented Programming Study''' = |
| | |
| __TOC__
| |
| == 개요 == | | == 개요 == |
| * 객체지향 프로그래밍 과목 팀플 겸 스터디 | | * 객체지향 프로그래밍 과목 팀플 겸 스터디 |
| Line 11: |
Line 9: |
| * [[송치완]], [[최다인]], [[김한성]], [[김성원]], [[추성준]], [[정성우]] | | * [[송치완]], [[최다인]], [[김한성]], [[김성원]], [[추성준]], [[정성우]] |
| == 내용 == | | == 내용 == |
| === 09.04 ===
| | * 2014.09.04 : 날짜와 시간을 정함 |
| * 날짜와 시간을 정함
| | * [[Oops/내용/2014.09.12]] |
| === 09.12 ===
| | * [[Oops/내용/2014.09.19]] |
| | | * [[Oops/내용/2014.10.03]] |
| * C++에서 Input/Output 객체로는 cin, cout, cerr이 있다. | | * [[Oops/내용/2014.10.31]] |
| 위의 객체들은 <iostream>에 정의되어 있다.
| | * [[Oops/내용/2014.11.07]] |
| #include <iostream>과 같은 전처리기 지시자는 파일 시작부에 명기 되어야 한다.
| | * 2014.11.14 / 2014.11.21 - OOP team project |
| | |
| * cout - cout은 C에서의 printf와 같은 역할을 한다. | |
| ex) cout<<numberOfGames<<"Games Played"<<endl;
| |
| endl객체는 \n과 같은 역할이지만 endl의 사용을 권장한다.
| |
| | |
| 단점 숫자 값의 출력 형식을 지정하지 않아 의도대로 출력되지 않을 수도 있다.
| |
| | |
| 숫자 값의 출력 형식 지정
| |
| cout.setf(ios::fixed);
| |
| cout.setf(ios::showpoin);
| |
| cout.precision(2);
| |
| | |
| cerr
| |
| cerr객체는 cout과 동일하게 동작한다.
| |
| 일반 출력과 에러 출력간의 구분 메커니즘을 제공
| |
| | |
| * cin | |
| cout과 반대로 '>>'을 사용한다.
| |
| cin>>num;
| |
| | |
| * namespace
| |
| 정의된 이름의 집합
| |
| | |
| 대표적으로 std가 있다. cou, cin은 사실 std::cout, std::cin이다. std라는 네임스페이스에 속해있는데 이를 생략하기 위해 namespace를 쓴다.
| |
| #include <iostream>
| |
|
| |
| int main(){
| |
| std::cout<<"Hello"<<std::endl;
| |
| }
| |
| | |
| | |
| #include <iostream>
| |
| using namespace std;
| |
| | |
| int main(){
| |
| cout<<"Hello"<<endl;
| |
| }
| |
| | |
| usingnamespace는 하나만 사용한다.
| |
| | |
| | |
| * C에서 온 라이브러리
| |
| | |
| C++의 경우 헤더파일의 확장자인 .h를 생략한다.
| |
| C에서 라이브러리의 경우 .h를 생략하고 c를 앞에 붙인다
| |
| <stdio.h> -> <cstdio>, <time.h> -> <ctime>
| |
| | |
| * C++에서는 프로그램 중간에 변수를 선언할 수 있다. | |
| | |
| for(int i=0; i<j ;i++){
| |
| /*blah*/
| |
| }
| |
| | |
| * Default 인자
| |
| | |
| void box(int x, int y, int z = 3){
| |
| returm x*y*z;
| |
| | |
| }
| |
| | |
| box(1,2)의 경우 마지막 인자는 3으로 자동지정된다.
| |
| default 인자는 끝에서 부터 명시해 준다.
| |
| | |
| * Class | |
| 클래스는 멤버 변수와 멤버 함수를 가진다. 구조체 정의와 유사하지만 클래스 안에는 함수를 선언하는 것이 가능하다.정의는 구조체 밖에서 정의한다. 클래스는 OOP의 핵심이다.
| |
| 클래스와 객체의 관계는 붕어빵틀과 붕어빵의 관계이다.
| |
| ::는 틀로의 접근이고, .는 빵에 접근하는 개념이다.
| |
| | |
| class DayOfYear
| |
| {
| |
| public:
| |
| void output;
| |
| private:
| |
| int month;
| |
| int day;
| |
|
| |
| };
| |
| | |
| void DayOfYear::output(){
| |
| std::cout<<"Hello";
| |
| }
| |
| | |
| 접근제한자
| |
| public
| |
| 외부에서 접근이 가능함.(클래스 기준)
| |
| 클래스 내의 멤버변수는
| |
| private
| |
| 외부에서 접근이 불가능함.
| |
| protected
| |
|
| |
| | |
| * OOP 규칙
| |
| | |
| 정보 은닉
| |
| 클래스 사용자는 연산이 어떻게 동작하는 지에 대한
| |
| 세부사항은 알 수 없음
| |
| | |
| 데이터 추상화
| |
| 사용자는 클래스 내에서 데이터가 어떻게 취급되는지에
| |
| 대한 사항을 알지 못함
| |
| | |
| 캡슐화
| |
| 데이터와 연산을 함께 제공하지만, 자세한 사항은 숨김
| |
| | |
| 프로그램의 자세한 구조를 몰라도 프로그램을 쓸 수 있어야 함.
| |
| 자세한 내용은 알려줄 필요가 없다.
| |
| | |
| == 과제 == | | == 과제 == |
|
| |
| === 09.12 ===
| |
| * [[Oops/과제/2014.09.12]] | | * [[Oops/과제/2014.09.12]] |
|
| |
|