회원가입
로그인
Toggle navigation
문제
문제
전체 문제
문제 출처
단계별로 풀어보기
알고리즘 분류
추가된 문제
문제 순위
문제
푼 사람이 한 명인 문제
아무도 못 푼 문제
최근 제출된 문제
최근 풀린 문제
랜덤
출처
ICPC
Olympiad
한국정보올림피아드
한국정보올림피아드시․도지역본선
전국 대학생 프로그래밍 대회 동아리 연합
대학교 대회
카카오 코드 페스티벌
Coder's High
ICPC
Regionals
World Finals
Korea Regional
Africa and the Middle East Regionals
Europe Regionals
Latin America Regionals
North America Regionals
South Pacific Regionals
문제집
대회
1
채점 현황
랭킹
게시판
그룹
더 보기
재채점 기록
블로그
강의
실험실
도움말
BOJ Stack
BOJ Book
전체
공지
자유
질문
오타/오역/요청
게시판 공지
홍보
업데이트
solved.ac
글쓰기
질문 도움말
자주묻는 질문
문법적인 궁금함이 있습니다 (static 멤버 변수)
qhrrkfl2
7년 전
0
클래스의 모든 인스턴스들이 공유하는 멤버변수.
객체의 은닉성을 유지하면서 모든 인스턴스들이 접근할 수 있어야하므로 static으로 선언한다.
각 인스턴스에 귀속된 값이 아니므로 this.m_StaticMember 로 호출하기보다는 CClass::m_StaticMember로 호출하는 것이 더 알맞다.
객체가 생성되기 전에 이미 Static은 전역변수처럼 메모리가 할당되므로, 생성자에서 초기화해줄 수 없다.
일반적인 방식으로 헤더에 선언만 하고 cpp파일에서 별개로 선언 및 초기화하는 방식을 선택한다.
여기서 왜 헤더에 선언하고 다른 cpp파일에 헤더를 선언하고 객체명::static멤버이름 = 초기화; 가 안되고
그 헤더 파일의 cpp에다 따로 선언을 해줘야 하느것이죠?
게다가 cpp에서 그런 식으로 선언및초기화를 안하면 링크오류가 뜨는데
이런 static멤버를 어떻게 링크하는지도 궁금합니다.
댓글을 작성하려면
로그인
해야 합니다.
qhrrkfl2 7년 전