일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TCP/IP
- QT TCP
- lua interpreter
- #신혼부부 #결혼준비 #신혼부부희망타운신혼부부특별공급
- 국토교통부
- 월세
- C API
- 프리미어 영상변환
- 수도권주택공급
- 중소규모택지
- QTcpServer
- 프리미어 영상저장
- file read
- 티몬삼겹살데이
- #부동산전자거래 #부동산전자계약 #부동산계약 #부동산전자계약방법 #부동산전자계약하는법 #부동산계약방법 #부동산중개수수료 #부동산중개수수료아끼기 #부동산복비아끼기
- file write
- 엑스퍼트생일축하해
- lua install
- Lua
- 엑스퍼트2주년
- file open
- C++ API
- 찾다죽는줄
- 청량리역한양수자인192
- lua for windows
- lua setup
- meta table
- FILE TRANSFER
- object
- 등록임대주택
- Today
- Total
Value Creator의 IT(프로그래밍 / 전자제품)
#2 클래스 생성 예제 본문
예제 클래스 : 원(Circle) 클래스
main.cpp에 클래스 넣지 말고, 가능하면 헤더파일을 만들어서 따로 만든다.
깔끔해 보이고 나중에라도 혹시 가져다 쓸때 더 편리하다.
1. Circle.h
#ifndef CIRCLE_H
#define CIRCLE_H
#include<iostream>
using namespace std;
class Circle
{
double pi = 3.14;
public:
int radius;
double getArea();
};
2.Circle.cpp
#include "Circle.h"
double Circle::getArea()
{
return pi*radius*radius;
}
3. Main.cpp
#include"Circle.h"
int main()
{
Circle pizza;
pizza.radius = 3;
double area = pizza.getArea();
cout << "pizza 면적은" << area << endl;
}
이렇게 해서 클래스의 객체 생성 및 활용을 해볼 수 있었는데 이 예제에서는 객체 생성과 객체의 이름, 그리고 객체의 멤버 접근에 대해서 공부해 볼 수 있다.
객체는 클래 모양과 기능을 그대로 간직한 실체로서 이름을 가진다. 기본 타입의 변수를 선언하는 것과 같은 방법으로 객체를 생성하고 이름을 붙일 수 있다.
int a;//기존의 변수 선언 방식
Circle donut;//Circle 클래스의 donut이라는 객체 생성.
Circle watch;//Circle 클래스의 watch라는 객체 생성
객체의 맴버 접근은 매우 쉽다. 위의 예제에서는 radius(반지름)이라는 접근가능한 멤버를 만들었다.
이 멤버에 대한 접근은 위에 만든 객체의 이름에 '.'을 찍고 멤버를 적는것이다.
ex ) 객체이름.멤버
그래서 구조체의 필드 활용은 c언어 때와 똑같다.
ex) pizza.radius = 3;//pizza 객체의 radius(멤버)에 3을 기록.
멤버함수의 호출에 대한 예는 double area = pizza.getArea(); 로 알 수 있다.
getArea();는 pi*radius*radius의 값을 리턴(반환)하는 함수이다.
앞서 피자라는 객체에 radius(멤버)가 3으로 기록되었으니
이때 area함수에는 pi*3*3이 리턴된다.
참고로 앞서 코드를 작성할때 헤더파일과 cpp파일을 나누어서 작성했는데 아래와 같이 해도 기능은 똑같으며 해더파일하나로 끝난다.
헤더 파일안에도 코드작성이 가능하다. 만들 소스가 너저분하지 않고 양이 적다면 해더파일에서 모든것을 만들어도 되긴된다. 하지만 되도록이면 cpp파일에 따로 만들도록하자.
#ifndef CIRCLE_H
#define CIRCLE_H
#include<iostream>
using namespace std;
class Circle
{
double pi = 3.14;
public:
int radius;
double getArea()
{
return pi*radius*radius;
}
};
#endif
'1. 프로그래밍 > 5) C++' 카테고리의 다른 글
#6 [C++] 예제 : RAM 구현해보기 (0) | 2019.07.26 |
---|---|
#5 [C++] 예제 : 랜덤 정수 10개 생성 클래스 만들기 (0) | 2019.07.26 |
#4 [C++] 구조체, 객체 포인터, 객체 배열 (0) | 2019.07.26 |
#3 [C++] 생성자, 소멸자, 접근지정자 (0) | 2019.07.26 |
#1 C++ 기초(객체지향, 캡슐화, 상속성, 다형성) (0) | 2019.07.24 |