C++
C++5일차
일어나코딩해야지
2018. 5. 30. 23:38
C++5일차
class
class는 자료를 저장하고 자료를 처리할수 있고 특정한 용도를 수행하기 위한 변수와 함수를 모아둔 틀입니다. 또한, class는 struct와 거의 비슷하지만 몇가지가 다르다네요.
그리고 객체는 class를 이용하여 찍어낸 개체라고 합니다.(by.두들낙서)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> using namespace std; struct a { //struct는 기본 적으로 public 속성을 가지고 있습니다 int k = 10; int s = 0; }; class b { int b = 0; int c = 0; }; int main(void) { a s; b t; s.k = 20; s.s = 20; t.b = 10; t.c = 10; } | cs |
struct와 class의 차이를 알수있는 예제입니다.
이걸 비주얼 스튜디오에 쓸경우 오류가 발생할겁니다. 클래스안에 있는 변수의 값을
바꿀수 없죠? 여기서 알 수 있듯이 struct는 public이라는 속성을 갖고 있어서 값을 바꿀수 있지만 class는 private라는 속성을 가지고 있어서 값을 바꿀수 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> using namespace std; struct a { //struct는 기본 적으로 public 속성을 가지고 있습니다 int k = 10; int s = 0; }; public b { int b = 0; int c = 0; }; int main(void) { a s; b t; s.k = 20; s.s = 20; t.b = 10; t.c = 10; cout << s.k << " " << s.s << endl; } | cs |
위의 예제는 class를 public으로 바꿔서 값을 넣을수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> using namespace std; struct a { //struct는 기본 적으로 public 속성을 가지고 있습니다 private: int k = 10; int s = 0; }; public b { int b = 0; int c = 0; }; int main(void) { a s; b t; s.k = 20; s.s = 20; t.b = 10; t.c = 10; cout << s.k << " " << s.s << endl; } | cs |
위의 예제는 struct안에 private를 넣어 struct안에 변수의 값을 바꿀수 없습니다.
p.s 사용자들에게 일부 속성은 보호하면서 일부 속성에게 접근할수 있는 인터페이스를 만드는것을 캡슐화라고 합니다
캡슐화는 객체의 3개의 속성중 하나입니다.