More actions
imported>chi3236 No edit summary |
imported>korin0925 No edit summary |
||
| Line 14: | Line 14: | ||
* 날짜와 시간을 정함 | * 날짜와 시간을 정함 | ||
=== 09.12 === | === 09.12 === | ||
* | |||
* C++에서 Input/Output 객체로는 cin, cout, cerr이 있다. | |||
위의 객체들은 <iostream>에 정의되어 있다. | |||
#include <iostream>과 같은 전처리기 지시자는 파일 시작부에 명기 되어야 한다. | |||
* 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 규칙 | |||
정보 은닉 | |||
클래스 사용자는 연산이 어떻게 동작하는 지에 대한 | |||
세부사항은 알 수 없음 | |||
데이터 추상화 | |||
사용자는 클래스 내에서 데이터가 어떻게 취급되는지에 | |||
대한 사항을 알지 못함 | |||
캡슐화 | |||
데이터와 연산을 함께 제공하지만, 자세한 사항은 숨김 | |||
프로그램의 자세한 구조를 몰라도 프로그램을 쓸 수 있어야 함. | |||
자세한 내용은 알려줄 필요가 없다. | |||
== 과제 == | == 과제 == | ||
Revision as of 06:33, 17 September 2014
Object Oriented Programming Study
개요
- 객체지향 프로그래밍 과목 팀플 겸 스터디
- C++ 언어를 공부합니다.
- 금요일 오후 3시
- 추가 인원 받지 않습니다
인원
내용
09.04
- 날짜와 시간을 정함
09.12
- C++에서 Input/Output 객체로는 cin, cout, cerr이 있다.
위의 객체들은 <iostream>에 정의되어 있다.
- include <iostream>과 같은 전처리기 지시자는 파일 시작부에 명기 되어야 한다.
- 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 규칙
정보 은닉
클래스 사용자는 연산이 어떻게 동작하는 지에 대한
세부사항은 알 수 없음
데이터 추상화 사용자는 클래스 내에서 데이터가 어떻게 취급되는지에 대한 사항을 알지 못함
캡슐화 데이터와 연산을 함께 제공하지만, 자세한 사항은 숨김
프로그램의 자세한 구조를 몰라도 프로그램을 쓸 수 있어야 함. 자세한 내용은 알려줄 필요가 없다.