티스토리 뷰
반응형
C와 C++에서의 구조체 차이와 연속되었다고 생각하자.
크게 말로 설명하는거보다 코드로 보는 것이 더 편할 우리를 위해 표와 코드만을 준비할 수 있었지만
접근 한정자 차이때문에 생기는 문제만 있다고 생각해도 좋다.
1. 구조체에서 접근 한정자가 정의되어있지 않다면 public이고 클래스에서는 private이다. 하지만 클래스에서 이런 짓은 하지 말자. 알더라도 명시적으로 범위로 접근 한정자를 정해줄 수 있는데 왜 이러는 것인가. 물론 Java와 같이 package-private한 기능이 있는 것도 아니고, 그냥 이럴 경우 private밑에 써주도록 하자.
struct MyStruct { int variable; // public }; class MyClass { int variable; // private. 근데 이러지 말고 private: int variable; // 이렇게 하자 };
2. 구조체를 상속받을때 접근 한정자가 정의되어있지 않아면 public이고 클래스에서는 private이다. 1과는 조금 다르게 이를 위해서 굳이 안써도 될 코드를 늘릴 필요가 있는가.. 는 각자의 몫이다.
struct BaseStruct { public: int variable; }; struct DerivedStruct : BaseStruct {}; // -> struct DerivedStruct : public BaseStruct {}; class BaseClass { public: int variable; }; class DerivedClass : BaseClass {}; // -> class DerivedClass : private BaseClass {};
출처: 링크(영어)
원문에서는 구조체가 클래스를 상속받았지만, 난 그냥 클래스가 클래스를 상속받는 것으로 보였다. 작동은 그대로다.
반응형
'낙서' 카테고리의 다른 글
세상에서 가장 쓸모 없는 앱과 5만 다운로드 (0) | 2019.08.12 |
---|---|
[Java] 소켓 서버 만들기 (0) | 2018.01.19 |
C와 C++에서의 구조체 차이 (0) | 2018.01.14 |
빠른 프로그램, 동적 프로그래밍 (0) | 2017.10.19 |
Java에는 포인터가 없다? (0) | 2017.10.19 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- linaro
- dokdo 4.0.3
- c++ 상속
- Java
- dokdo project
- G2
- d802
- LG
- C++ 업캐스팅
- vector
- f320s
- nodeal
- rule_of_three
- PipelineContext
- dokdo-project
- g2 korea
- inline class
- rule_of_five
- c++ struct
- cyanogenmod
- C
- C++
- Kotlin
- OOP
- f320k
- 포인터
- CM10.2
- CM11
- 객체지향
- c++11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함