DrawingProcess
드프 DrawingProcess
DrawingProcess
전체 방문자
오늘
어제
«   2025/05   »
일 월 화 수 목 금 토
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 31
  • 분류 전체보기 (964)
    • Profile & Branding (22)
      • Career (15)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • 인생을 살면서 (64)
      • 나의 취미들 (7)
      • 나의 생각들 (42)
      • 여행을 떠나자~ (10)
      • 분기별 회고 (5)

개발자 명언

“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”

- Jef Raskin

맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
DrawingProcess

드프 DrawingProcess

Study: Software(SW)/SW: Language

[C++] 객체지향 프로그래밍: 변수 및 구조체 접근법 정리 (feat. struct vs class)

2022. 7. 23. 15:58
반응형

1. 구조체 (struct vs class)

struct

멤버 변수/함수에 대한 기본적으로 제공되는 접근지시자가 public이며, 대게 단순한 데이터를 표현하는데 사용합니다.

class

멤버 변수/함수에 대한 기본적으로 제공되는 접근지시자가 private이며, 대게 기본적으로 제공되지 않는 constructor, operator를 사용하지 않거나 다양한 접근지시자가 필요할 때 사용합니다.

2. 변수 및 구조체 (pointer, reference, struct, class, union, choice, enum 등)

구조체 선언

typedef struct packet1
{
    int data0;
    int* data1;
    union uni{
    	int data2
    	int data3
    }Uni;
}Packet;

+ 구조체 선언: typedef struct VS struct

// i) Struct packet 선언: Recommendation: common ideom
typedef struct packet1
{
	int data0;
	int* data1;
}Packet;
void doit(Packet pac);

// ii) Struct packet 선언: Not Recommendation
struct packet2
{
	int data0;
	int* data1;
};
void doit(struct packet2 pac);
  • typedef를 사용하는 이유?
    • 일반적으로 첫번째와 같은 struct 선언이 object를 생성/호출하기 용이(struct라고 명시할 필요없음)하고,
    • C와의 호환성을 위해서 추천합니다(C에서 typedef를 사용하기에 호환성이 좋음).
      • Packet: 구조체의 테그 포인트, C++에서는 구조체 타입 명으로도 인식합니다.
  • typedef struct <name> { ... }<other name>의 경우,
    struct { ... }; typedef struct <name> <other name>와 동일합니다.

구조체 대입

Packet p;  //Struct Packet 정의
p.data0 = 0;
p.(*data1) = 1;
Packet p;  // Struct Packet 정의
Packet* p_pointer;  // Packet에 대한 Pointer 선언 
p_pointer = &p;  // Pointer 정의 

p_pointer->data0 = 0;

구조체 접근

int data0 = p.data0;
int *data1 = p.data1;

참고

  • When should you use a class vs a struct in C++?: https://stackoverflow.com/questions/54585/when-should-you-use-a-class-vs-a-struct-in-c
  • 구조체 포인터의 선언과 접근: https://neuro.tistory.com/16
  • Difference Between Struct and Typedef Struct in C: https://www.delftstack.com/howto/c/struct-and-typedef-struct-in-c/
반응형
저작자표시 비영리 변경금지 (새창열림)

'Study: Software(SW) > SW: Language' 카테고리의 다른 글

[C++] 객체지향 프로그래밍: 예외 처리(try, catch, throw, exception)  (0) 2022.08.29
[C++] 객체지향 프로그래밍: fstream 파일 입출력(feat. 파일 전체 읽기, 한 줄씩 읽기)  (0) 2022.08.19
[C++] Modern C++ Programming Cookbook 정리  (0) 2022.07.12
[C++] 함수형 프로그래밍(feat. lambda function)  (0) 2022.07.06
[C++] 조건부 컴파일 매크로(전처리기 지시어): Header Guard (#if, #ifdef, #elif, #else, #endif...)  (0) 2022.07.04
    'Study: Software(SW)/SW: Language' 카테고리의 다른 글
    • [C++] 객체지향 프로그래밍: 예외 처리(try, catch, throw, exception)
    • [C++] 객체지향 프로그래밍: fstream 파일 입출력(feat. 파일 전체 읽기, 한 줄씩 읽기)
    • [C++] Modern C++ Programming Cookbook 정리
    • [C++] 함수형 프로그래밍(feat. lambda function)
    DrawingProcess
    DrawingProcess
    과정을 그리자!

    티스토리툴바