선언(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)
함수의 시그니처, 혹은 클래스의 접근 가능 요소라던지, 템플릿의 타입매개변수로서 유효해야하는 표현식 등을 가리킨다
'Programming > C++' 카테고리의 다른 글
[cpp][effective_c++_18] 인터페이스 설계는 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 (0) | 2022.11.23 |
---|---|
[Cpp] Lambda 표현식에 대하여 알아보자 (1) | 2022.09.08 |
[CPP] 1. CPP의 법 따르기 (0) | 2022.01.24 |
[cpp] cpp11 new/delete 연산자 (0) | 2021.02.23 |
OOP 개념 (0) | 2019.01.01 |