vector

array와 달리 한번정한 크기를 바꿀 수 없다.

그러나 vector는 크기를 가변적으로 바꿀 수 있다.

정의는

vector<type> 변수명;

예제

이밖에 여러 맴버 함수가 존재한다.

클래스에서의 static

static 변수는 class 내에서도 맴버변수로 사용 될 수 있다.

그냥 맴버변수는 인스턴스가 생성될때마다 새로 공간이 할당되어지지만, static 맴버변수는 모든 인스턴스에서 동일하다. 또한 공단도 새로 할당되어지지 않는다.

접근지정자 역시 사용가능하며 맴버변수를 선언할때 앞에 static을 붙여주면 된다.

헤더파일에서의 정의

class <클래스명> {
...

<접근 제한자>:
    static <데이터타입> <데이터명>; --->선언은 하되 초기화는 해주지 않는다.!
                                --->클래스내에서 하면 에러가 발생한다.
                                --->클래스 외부에서 전역변수처럼 초기화!
...
}

main이 들어있는 cpp

#include <iostream>

using namespace std;

<데이터 타입> <클래스명>::<static 변수명> = <초기화값>;

int main(){

}

static 에 접근하는 방법

int main(){

    <클레스명>::<static변수명>-->클래스의 함수 쓰듯이 사용한다.

}

static 함수

static 함수 내에서는 static 변수만 사용이 가능하다.

static 함수에서 맴버변수는 사용이 불가능하다.

이는 다른 구간의 지역변수를 사용하는것과 동일한 이치이다.

헤더파일에서 선언

static <return type> 함수명 ();

cpp파일에서의 선언

<return type> <class 명>::<함수명>(){

}

--->cpp파일에서는 일반 함수 선언과 동일하며 앞에 static은 붙지 않는다
--->body에 변수는 static변수만 이용가능하며 맴버변수는 불가능하다.

main에서의 사용

int main(){

    클래스명::함수명();-->객체를 생성하여 사용하지 않고 클래스에서 불러와 사용.

}

'언어 > CPP(cpp)' 카테고리의 다른 글

const  (0) 2018.02.06
operator overloading(연산자 오버로딩)  (0) 2018.02.05
클레스  (0) 2018.02.05
함수 default  (0) 2018.02.05
overloading  (0) 2018.02.05

+ Recent posts