2013. 11. 14. 21:07 C언어

c++ 공부 요점정리 4





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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// =====================================================
// 11 구조체의 유용성
// =====================================================
// 구조체의 유용성
// : 관련있는 데이터를 하나의 자료형으로 묶을 수 있다.
//   따라서 프로그램의 구현 및 관리가 용이해짐
//   함께 움직이는 데이터들을 묶어주는 효과

// c언어는
// : 모든 사용자 정의 자료형을
//   기본 자료형으로 인식해 주지 않는다.
// ex
struct person{
	int age;
	char name[10];
}

int main(void)
{
	int a = 10;
	person p; 	// 에러발생
				// struct person p; 로 선언해야함
				// c에서는 사용자 자료형을 기본자료형
				// 처럼 선언할 수 없다.
}
// c++은 기본자료형이나 사용자 정의 자료형의 차이가 없다.
// 즉, person p;로 선언가능함




// =====================================================
// 12 함수에 넣으면 좋은 구조체
// =====================================================
// c에서는 구조체에 함수를 정의할 수 없지만
// c++에서는 구조체에 함수를 정의 할 수 있다.
// ex
#include <iostream>
using std::cout;
using std::endl;

struct Account {
	char accID[20];    // 구조체의 멤버 변수
	char secID[20];    // 구조체의 멤버 변수
	char name[20];     // 구조체의 멤버 변수
	int balance;       // 구조체의 멤버 변수

	void Deposit(int money){ // 구조체의 멤버 함수
		balance+=money; // 구조체 멤버 함수는 
						// 같은 구조체의 멤버 변수를
						// 참조할 수 있다.
						// 같은 이름으로 구조체 멤버 함수안에
						// 지역변수를 선언할 경우
						// 같은 이름의 구조체 멤버 변수는
						// 가려지게 되어 사용할 수 없다
						// 
	}
	void Withdraw(int money){ // 구조체의 멤버 함수
		balance-=money;
	}

};

int main(void)
{
	Account yoon={"1234", "2321", "yoon", 1000};

	yoon.Deposit(100); // 구조체의 변수에 접근하기 위해
						// 접근 연산자 "."을 사용하는 것처럼
						// 구조체의 함수에 접근하기 위해서도
						// 접근 연산자 "."을 사용한다
	cout<<"잔    액 : "<<yoon.balance<<endl;

	yoon.Withdraw(200);
	cout<<"잔    액 : "<<yoon.balance<<endl;

	return 0;
}




// =====================================================
// 13 함수에 넣으면 좋은 구조체
// =====================================================
// 클래스 : 멤버 변수 + 멤버 함수
//          클래스를 이용해 변수를 선언할 경우
//          그 변수는 객체라고 부른다
//          변수가 아니라 객체(object 완전한 대상체)


// c에서는
//
// 기본 자료형   : int, double, ...
// 사용자 자료형 : 구조체, 공용체, enum, ...
//               구조체 : 기본자료형과 기존에 만들어진
//                        사용자 자료형을 이용해만듬,
//                        변수만을 이용해서

// c++에서는
//
// 기본 자료형   : int, double, ...
// 사용자 자료형 : 클래스
//                 클래스 : 변수와 함수를 이용해 만듬
//
// c++에서 구조체는 클래스에 포함된다.
// 즉, 구조체는 클래스의 하위개념
// 특정 구조체 안의 함수를 호출하는 행위를 
// mesage passing이라고 부른다.

// 변수와 함수를 하나로 묶어서 하나의 자료형을 만드는데 있어서
// struct라는 자료형을 이용할 수도 있고
// class라는 자료형을 이용해 만들 수도 있다.
// 두가지 방법은 거의 일치하나 딱 한가지 차이가 있다
// 
//

// 왜 클래스가 나타났는가
// 왜 변수와 함수를 묶어서 자료형을 선언해야하는가
// : 

// 왜 변수가 아니라 객체라 부르는가
// : 


// =====================================================
// 14 구조체가 아니라 클래스
// =====================================================

// =====================================================
// 15 클래스와 객체
// =====================================================

// =====================================================
// 16 클래스의 내부 접근과 외부 접근
// =====================================================







'C언어' 카테고리의 다른 글

c++ 공부 요점 정리 6  (0) 2013.11.16
c++ 공부 요점정리 5  (0) 2013.11.15
c++ 공부 요점 정리 3  (0) 2013.11.13
c++ 공부 요점 정리 2  (0) 2013.11.11
리눅스(우분투 10.10) 공유 메모리 예제 2  (0) 2013.11.07
Posted by 뮹실이

최근에 달린 댓글

06-27 11:08
Yesterday
Today
Total