본문 바로가기

Programming/C/C++

C++/C++ 구조체

반응형

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