Published 2022. 1. 24. 22:56

선언(declaration)

코드에 사용되는 '어떤 대상'의 이름과 타입을 컴파일러에게 알려주는 것

선언문에는 시그니처,즉 그 함수의 매개변수 리스트와 반환타입이 나와있다.

 

정의(definiton)

선언에서 빠진 구체적인 세부사항을 컴파일러에 제공하는 것

객체의 경우에 있어서 정의는 컴파일러가 그 객체에 대한 메모리를 마련해놓는 부분 

 

초기화(initialization) 

어떤 객체에 최초의 값을 부여하는것

 

기본생성자(default constructor)

어떤 인자도 주어지지 않은 채로 호출될 수 있는 생성자

생성자가 explicit로 선언되어있을 경우 암시적인 변환 타입을 수행하는데 쓰이지 않는다.

예를 들면 다음과 같다.

Class B{
public :
expllicit B(int x =0, bool b = true);
}

void doFunction(B bObject);

//위 처럼 선언되어 있을 때 아래처럼 사용이 불가능하다
doFunction(18);

//하지만 이렇게는 사용가능
B b(18);
doFucntion(b);

 

복사 생성자(copy constructor) 

어떤 객체의 초기화를 위해 그와 같은 타입의 객체로부터 초기화 할 때 호출되는 함수

값에 의한 전달(pass-by value)

복사 대입 연산자(copy assingment operator)

같은 타입의 다른 객체에 어떤 객체의 값을 복사하는 용도

class Student {
public:
Student(); // 기본생성자
Student(const Student& stu); //복사 생성자
Student& operator=(const Student& stu); //복사 대입 연산자
}

//실제 사용할 경우

Student s1; //기본 생성자 호출
Student s2(s1); //복사 생성자 호출
s1=s2; //복사 대입연산자 호출

//단 이건 복사 대입연산자가 아니다
Student s3=s2;

 

인터페이스(interface)

함수의 시그니처, 혹은 클래스의 접근 가능 요소라던지, 템플릿의 타입매개변수로서 유효해야하는 표현식 등을 가리킨다

 

복사했습니다!