본문 바로가기

분류 전체보기

(88)
[C++] 메모리 동적 할당 new와 delete 연산자 C언어에서 malloc()과 free()가 있다면 C++문법에는 new와 delete 연사자가 있다. new와 delete는 C++에서 객체를 동적 할당하고 해제하는 연산자이다. 예는 다음과 같다. int *x = new int; delete x; 배열의 경우 다음과 같이 사용할 수 있다. int *y = new int[10]; delete[] y; new 연산자는 malloc() 함수와 달리 메모리 크기를 정하지 않아도 된다. #include using namespace std; int main() { //메모리 동적 할당과 초기화 int* pNew = new int(10); cout
[C++] 생성자와 소멸자 생성자와 소멸자는 클래스 객체가 생성 및 소멸될 때 자동으로 호출되는 함수이다. 생성자와 소멸자는 반환 형식이 없다는 것이 특징이다. //생성자 클래스이름(); //소멸자 ~클래스이름(); 소멸자는 생성자앞에 물결표시(tildar 틸다)로 표기한다. 생성자와 소멸자의 핵심내용은 다음과 같다. 생성자는 다중 정의할 수 있다. 소멸자는 다중 정의할 수 없다. 전역 변수로 클래스를 선언하면 main함수보다 먼저 호출된다. main함수가 끝난 후에 소멸자가 호출될 수 있다. 생성자와 소멸자를 기술하지 않으면 컴파일러가 자동으로 생성한다. 생성자와 소멸자의 호출 시기를 보자. #include using namespace std; class myClass { public: //생성자 myClass(int x) : ..
[C++] 참조자(Reference) C++에는 참조자라는 것이 있습니다. 참조자 형식은 C언어의 포인터와 비슷한 형식을 가집니다. 상수에는 포인터를 선언할 수 없는 것처럼 참조도 선언할 수 없습니다. #include using namespace std; int main() { int num = 10; int& ref = num;//참조자 선언 int* ptr = #//포인터 선언 ref = 100; cout
[C++] this 포인터 this 포인터란? this 포인터는 작성 중인 클래스의 실제 인스턴스에 대한 주소를 가리키는 포인터이다. 즉, 객체가 자기 자신을 가리키는 포인터이다. #include using namespace std; class myClass { public: myClass(int x, int y) { this->x = x; this->y = y; } void Print() { cout
[C++] 클래스와 메소드 클래스란? 클래스란 객체 지향 프로그래밍에서, 데이터와 그 조작 절차인 메소드를 정리한 객체의 추형을 정의한 것이다. 메소드란? 메소드(Method)는 어떤 작동을 구현하고 요청 서비스를 수행할 수 있도록 만들어진 단일 요구 메시지. 객체지향(Object-Oriented)은 사람(사용자)관점에서 접근하는 프로그래밍 개발 방법이다. 클래스의 기본 형태는 다음과 같다. class 클래스이름 { 접근제어지시자: 멤버변수선언; 멤버함수선언및정의; }; 클래스에는 생성자라는 것이 있다. 생성자는 클래스이름과 똑같고 객체 선언시 자동 호출된다는 점을 꼭 기억해야한다. 자동 호출된다는 점에서 멤버변수 초기화 하기에 좋다. 초기화하는데는 다양한 방법이 있다. 다음은 생성자 초기화 목록을 이용한 초기화 방법이다. cla..
[C++] 네임스페이스(Namespace) 네임스페이스란? 네임스페이스는 변수, 함수, 클래스 등을 그룹화하는 문법이다. namespace 예약어를 이용해 다음과 같은 형태로 사용한다. namespace 이름 { ... } 이름은 그룹의 이름 정도가 되겠다. #include using namespace std; namespace MYSPACE { int num = 10; void myFunc(void) { cout
[C++] 오버로딩(Overloading)과 템플릿(Template) 오버로딩이란? C++은 C와 다르게 함수 다중 정의를 지원한다. 함수의 이름이 같더라도 매개변수가 달라지면 다른 함수가 된다. #include using namespace std; int Add(int num1, int num2, int num3) { return num1 + num2 + num3; } int Add(int num1, int num2) { return num1 + num2; } double Add(double num1, double num2) { return num1 + num2; } int main() { cout
[C++] 디폴트 매개변수 C++ 디폴트 매개변수에 대해서 알아보자 매개변수가 있는 함수 호출 시 C에서는 반드시 매개변수를 넘겨줘야 하지만 C++에서는 디폴트 매개변수라는 것이 있다. #include using namespace std; int TestFunc(int num = 10) { return num; } int main() { cout