⇒ 비슷한 역할을 하는데도 구조체가 없어지지 않는 이유는, C언어와 호환성을 위해서 남겨놨다고 한다.
구조체 선언 예시
// 구조체
struct Point {
int x;
int y;
};
구조체 사용 예시
#include <iostream>
using namespace std;
// 구조체
struct shape {
int height;
int width;
};
int main(){
shape s;
s.height = 12;
s.width = 3;
cout << s.height*s.width << endl;
return 0;
}
struct Point {
int x;
int y;
};
int main(){
// 구조체 포인터 선언
struct Point *ptr;
// 구조체 변수 선언
struct Point p2 = {10, 20};
// 메모리 동적 할당
ptr = (struct Point *)malloc(sizeof(struct Point));
// 정적 할당
struct Point *ptr2 = &p2;
// 멤버에 접근하여 값 할당
ptr->x = 10;
ptr->y = 20;
return 0;
}
클래스 코드 예제
class CPoint {
// 변수
int x;
int y;
// 함수
void Print(){
cout << x << endl;
cout << y << endl;
};
void display(){
std::cout << "Value: " << value << std::endl;
};
}
int mian() {
// 객체 배열 생성
CPoint po[5];
// 객체 배열에 값 할당
for (int i = 0; i < 5; i++){
po[i].x = i + 1;
}
// 객체 배열 출력
for (int i = 0; i < 5; i++){
po[i].display();
}
return 0;
}
#include <iostream>
class MyClass {
public:
int value;
MyClass(int v) {
value = v;
}
void display() {
std::cout << "Value: " << value << std::endl;
}
};
int main() {
// MyClass 객체 생성
MyClass obj(10);
// 객체 포인터 선언 및 초기화
MyClass *ptr = &obj;
// 객체 포인터를 통한 멤버 접근
ptr->display(); // 객체의 display() 함수 호출
return 0;
}