티스토리 뷰
3.1 객체에 대한 이해
* 클래스
- 객체를 만들어내기 위해 정의된 설계도, 틀
- 멤버 변수와 멤버 함수 선언
* 객체
- 객체는 생성될 때 클래스의 모양을 그대로 가지고 탄생
- 멤버 변수와 멤버 함수로 구성
- 메모리에 생성, 인스턴스(instance)라고 부르기도 함.
- 하나의 클래스 틀에서 찍어낸 여러 개의 객체 생성 가능
- 객체들의 상호 별도의 공간에 생성
3.2 클래스 만들기
- class 키워드 이용.
- 일반적으로 클래스 선언부와 클래스 구현부로 나누어 작성된다.
- 클래스 선언부에는 class 키워드로 클래스의 모양을 선언.
- 클래스 구현부는 클래스의 멤버 함수들을 구현한다.
* 선언부 형식
class Circle {
public: // 멤버에 대한 접근 지정자
int radius;//멤버 변수
double getArea();//멤버 함수
};
*구현부 형식
double Circle :: getArea(){
return 3.14 * radius * radius;
}
- 클래스 구현부에서 범위지정연산자(::)를 이용해 멤버함수의 소속을 알려주어야 한다.
ex) double Circle :: 멤버함수이름
* 클래스 예제(Circle 예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 |
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
//1. 선언부
class Circle {
public://멤버에 대한 접근지정자.
int radius;//멤버 변수 , radius = 5 처럼 초기값 설정 불가
double getArea();//멤버 함수
};//세미콜론으로 끝난다!
//2.구현부
double Circle :: getArea(){//getArea() 클래스 소속 ::(범위지정연산자)
return 3.14 * radius * radius;
}
int main() {
//donut 객체 생성 : 클래스이름 객체이름
Circle donut;
donut.radius = 10;// 반지름이 10인 donut 객체 생성
double area = donut.getArea(); // donut의 면적 구하기.
cout << "donut의 면적은 " << donut.getArea() <<endl;
//반지름이 30인 피자 객체 생성
Circle pizza;
pizza.radius = 30;
double area2 = pizza.getArea();
cout << "pizza의 면적은 "<< pizza.getArea() << endl;
return 0;
} |
cs |
3.4 생성자(Constructor)
- 생성자는 객체를 생성 할 때 객체를 초기화 할 수 있다.
- 객체가 생성될 때 자동으로 기본 생성자가 호출된다.
- 매개 변수가 없는 생성자가 기본 생성자이다.
* 생성자 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 |
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
//1. 선언부
class Circle {
public://멤버에 대한 접근지정자.
int radius;//멤버 변수
double getArea();//멤버 함수
Circle();// 기본생성자 선언
};//세미콜론으로 끝난다!
//2.구현부
Circle::Circle() {//기본생성자 구현.
radius = 5;
cout << "반지름 " << radius <<"d인 생성" << endl;
}
double Circle :: getArea(){//getArea() 클래스 소속 ::(범위지정연산자)
return 3.14 * radius * radius;
}
int main() {
Circle donut;//객체가 생성되면 자동으로 기본생성자를 호출한다. radius = 5
donut.radius = 10;//radius = 5 였던 donut 객체의 radius를 10으로 바꾼다.
double area = donut.getArea(); // donut의 면적 구하기.
cout << "donut의 면적은 " << donut.getArea() <<endl;
return 0;
} |
cs |
'객체 지향 프로그래밍 > 이론 정리' 카테고리의 다른 글
[C++]객체 포인터, 객체 배열,동적 메모리 할당 (0) | 2017.10.11 |
---|---|
[C++]접근지정자, 인라인 함수, 구조체, 파일분리 (0) | 2017.09.27 |
[C++]기본생성자 예제, 생성자의 특징, 소멸자 (0) | 2017.09.21 |
[C++] C++ 문자열 처리 (0) | 2017.09.13 |
2. C++ 프로그래밍의 기본 (0) | 2017.09.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바스크립트 그래프
- 자료구조
- 자바 에센셜 실습문제
- 자바
- 파이썬 함수
- 자바스크립트 자료구조
- 파이썬 리스트
- 백준 10451
- 파이썬
- 파이썬 터틀
- 파이썬 객체
- 파이썬 for
- 파이썬 while
- 파이썬 예제
- 파이썬 문자열
- css
- 백준 11501
- 파이썬 단계적 개선
- 파이썬 연산자
- css 그리드
- 파이썬 클래스
- 파이썬 선택문
- 백준
- 버츄어박스
- css 박스
- 파이썬 진수 변환
- 파이썬 if문
- 명품 c++ 실습
- 백준 1874
- 웹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함