c++ 에서 어떤 클래스의 새로운 인스턴스를 생성 하는 것을 인스턴스화 라고 한다.
cin으로 입력을 받을때는 기본적으로 먼저 버퍼에 담았다가 데이터를 저장한다.
//간단한 예시로 입력이 123abc이라하면
#include <iostream>
#include <string>
using namespace std;
int main() {
int num=0
string s=hi;
cin >> num;
cin >> s;
cout << num << " " << s;
}
/* 출력
123 abc
*/
cin을 두번 사용 하였지만 쉘에서는 입력을 한번만 받는다.
이는 처음 입력에서 int인 123만 먼저 저장을하고, 버퍼에는 abc가 그대로 남아있기때문이다.
getline(std::cin, buffer, delimeter); // delimeter가 없다면 기본으로 개행이 기준이다.
C++에서 클래스(class)란 구조체의 상위 호환으로 이해할 수 있다.
C++의 구조체는 멤버로 함수를 포함할 수 있기에, C언어의 구조체보다 좀 더 확장된 의미를 가진다.
C++에서 이러한 구조체와 클래스의 차이는 기본 접근 제어의 차이일 뿐, 나머지는 거의 같다.
C++에서는 이러한 클래스를 가지고 객체 지향 프로그램을 작성할 수 있다.
생성자는 클래스를 인스턴스화 할때 실행되는 행동이라고 생각하면 된다.
마찬가지로 소멸자 또한 객체가 없어질때 실행되는 행동이다.
생성자와 소멸자를 따로 만들지 않는다면 아무 행동을 하지않는다.
initialization list cpp