반응형
C와 호환적인 구조체와 선언
C++은 C와의 호환성을 위해 구조체(struct)를 지원한다.
* C++ 구조체는 표준 C 구조체에서 기능을 확장하여 클래스와 동일한 구조와 기능을 가진다.
* C++ 구조체는 struct로 선언하며, 멤버 변수와 멤버 함수를 가지고, C와 다르게 접근 지정도 해야 한다.
* 디폴트 접근 지정은 public 이다.
구조체의 객체 생성
1 2 3 4 5 6 7 8 9 10 11 | struct structName { private: public: protected: }; structName stObj; | cs |
[구조체 이름] [구조체 객체 이름]; 으로 생성하며
C언어와 달리 구조체 객체 생성시 struct를 붙이지 않는다.
struct structName stObj;
구조체와 클래스의 차이점
C++ 구조체는 클래스와 기능적으로 동일하다.
* 다른 구조체나 클래스에게 상속이 가능하다.
* 구조체나 클래스를 상속 받을 수 있다.
* 멤버들은 접근 지정자로 지정되며 멤버 활용 또한 클래스와 동일 하다.
* 한가지 다른 점은 디폴트 접근 지정이 클래스는 private 구조체는 public 이다.
Circle 클래스를 재작성한 C++ 구조체
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 StructCircle { private: int radius; public: StructCircle(); StructCircle(int r) { radius = r; }; double getArea(); }; StructCircle::StructCircle() { radius = 1; } double StructCircle::getArea() { return 3.14*radius*radius; } int main() { StructCircle waffle(3); cout << "면적은 " << waffle.getArea() << endl; } | cs |
반응형
'Programming > C/C++' 카테고리의 다른 글
C++/헤더 파일과 cpp 파일로 분리 예시 (0) | 2017.10.23 |
---|---|
C++/C++ 프로그램 작성법 (0) | 2017.10.23 |
C++/인라인 함수 (0) | 2017.10.23 |
C++/접근지정자 (0) | 2017.10.22 |
C++/소멸자 (0) | 2017.10.22 |