전체 글 292

[C++] 객체 포인터

동일 클래스의 객체 주소를 저장합니다. 객체 포인터의 멤버 참조 연산자는 -> 입니다. (구조체와 동일) 클래스이름 객체;클래스이름 *객체포인터;객체포인터 = &객체;객체포인터 -> 멤버; 이렇게 생성할 수도 있고, (정적 객체) 객체포인터 = new 클래스이름;객체포인터 -> 멤버; delete(객체포인터); new 키워드를 사용해서 객체를 만들고 반환된 주소를 포인터 객체에 저장하는 방법도 있습니다. (동적 객체) 123456789101112131415161718192021222324252627282930313233343536373839404142#include using namespace std; class CopyObj{public: CopyObj(const double h, const doubl..

Programming/C++ 2018.01.22

[C++] 소멸자

객체가 소멸할 때 자동으로 실행되는 함수입니다. 소멸자 이름은 생성자 이름에 "~" 기호를 앞부분에 붙인 형태입니다. ex) ~Student(); //소멸자 1234567891011121314151617181920212223242526272829303132333435363738394041#include using namespace std; class CopyObj{public: CopyObj(const double h, const double w); ~CopyObj(); void showVar(); private: double height; double weight;}; CopyObj::CopyObj(const double h, const double w) { height = h; weight = w;}..

Programming/C++ 2018.01.22

[C++] 생성자

생성자는 객체가 생성될 때 자동으로 호출되는 멤버 함수입니다. 클래스 이름과 같아야 하고, 함수의 반환값은 없습니다. public 접근 속성을 가져야 하고, 객체 생성과 동시에 멤버 변수들을 초기화 할 때 사용됩니다. 생성자를 따로 정의하지 않았을 경우, 매개 변수가 없고, 아무 기능도 하지 않는 디폴트 생성자가 자동으로 만들어집니다.(매개 변수가 있는 생성자를 정의할 시 디폴트 생성자가 자동으로 생성되지 않아서 인자 없이 객체를 생성하지 못하므로, 꼭 인자를 주어 객체를 만들거나, 따로 디폴트 생성자를 만들어줘야 합니다. ex) Student(){} ) 1234567891011121314151617181920212223#pragma once#ifndef _STUDENT1_H_ #include using..

Programming/C++ 2018.01.22

[C++] 클래스와 객체

클래스 정의 -> 객체 생성 클래스는 하나의 추상적 개념체입니다. 실체인 객체를 만들기 위한 틀이죠. 사람이라는 클래스가 있고, 그에 따른 실제 객체인 나, 친구, 엄마 등을 만들 수 있는 것입니다. 그래서 클래스는 객체들이 공통적으로 가지고 있을 멤버 변수나 멤버 함수를 정의해야 합니다.(여러 개의 변수와 함수를 가질 수 있음) 클래스 선언 : class 클래스 이름{클래스 멤버; //멤버 변수와 멤버 함수}; 만약에 하나의 정수를 변수에 저장하고 해당 변수를 화면에 출력하는 프로그램을 객체 지향으로 작성한다면, 정수를 저장할 변수 하나와 출력하는 함수 하나를 만들어야 합니다. 12345class IntSample //클래스 이름{ void showScore(); //출력 함수 int score; //..

Programming/C++ 2018.01.22

[C++] 함수 오버로딩

C언어에서 같은 이름의 함수는 정의하지 못했습니다. 하지만 C++에서는 함수의 이름이 같아도 매개변수를 다르게 하여 함수를 재정의하는 것이 가능합니다. 이게 바로 함수 오버로딩입니다. 매개변수가 다르다는 말은 매개변수의 이름이 다른 게 아니라, 자료형이나 개수가 달라야 한다는 것입니다. 123456789101112131415161718192021222324252627282930313233343536#include using namespace std; void printType(int);void printType(double);void printType(char);void printType(char *); int main(){ int value1 = 100; double value2 = 123.456; c..

Programming/C++ 2018.01.22

[C++] 구조체

구조체 태그 : 구조체 식별자구조체 멤버 : 구조체를 구성하는 항목 구조체를 정의하고 나중에 구조체 변수 선언. struct [태그이름]{구조체 멤버 선언;}; struct [태그 이름] 변수이름1, 변수이름2; 구조체를 정의하는 동시에 구조체 변수 선언. struct [태그이름]{구조체 멤버 선언;} 변수이름1, 변수이름2; 구조체는 연관된 여러 변수와 배열들을 묶어놓은 하나의 자료형이라고 생각하면 됩니다. 1234567891011121314151617181920212223#include using namespace std; struct Friend{ char name[16]; int age; char msg[64];}; int main() { struct Friend f1; strcpy_s(f1.na..

Programming/C++ 2018.01.21

[C++] 동적 할당

C언어에서 동적 할당은 malloc(), calloc(), realloc() 등의 함수를 이용해서 공간을 할당해줬습니다.그리고 free() 라는 함수로 해제해줬습니다. C++에서는 다릅니다. 기억공간 할당 : new기억공간 해제 : delete 자료형 *포인터변수 = new 자료형; or자료형 *포인터변수 = new 자료형[개수]; 이렇게 공간을 할당합니다. delete 포인터변수; ordelete[] 포인터변수; 이렇게 공간을 해제합니다. 123456789101112131415161718192021#include using namespace std; int main() { int *pi = new int; //int 하나 크기(4byte)의 기억공간 할당 *pi = 100; cout

Programming/C++ 2018.01.21
반응형