본문 바로가기

프로그래밍 언어/C++

C++의 Declaration에 대한 해석(interpretation) 명시 vs 의미적 속성(semantic properties)

반응형

1. 해석 명시 - "이것이 무엇인가?"
int x;              // x는 "변수"
void func();        // func는 "함수"
class MyClass;      // MyClass는 "타입(클래스)"
namespace NS;       // NS는 "네임스페이스"
typedef int ID;     // ID는 "타입 별칭"

→ 이름이 어떤 종류의 개체를 가리키는지 결정

2. 의미적 속성 명시 - "어떤 특성을 가지는가?"
int x;              // 타입: int, 저장소: 자동
const int y = 5;    // 타입: int, 속성: 상수, 초기값: 5
static double z;    // 타입: double, 저장소: 정적
extern int w;       // 타입: int, 연결: 외부
volatile int v;     // 타입: int, 속성: 휘발성

void func(int, double);  // 반환타입: void, 매개변수: (int, double)

→ 그 개체가 어떤 타입과 특성을 가지는지 정의

정리
  • 해석: 이름의 정체성(변수? 함수? 타입?)
  • 의미적 속성: 그 정체의 구체적 특징(어떤 타입? 어떤 속성?)
728x90
반응형