Programming/C++ 16

[C++] 상속

이미 정의된 클래스의 멤버를 새롭게 정의할 클래스의 멤버로 참조케 하는 것을 말합니다. 즉, 이미 작성한 클래스의 멤버를 물려받는 것입니다. 부모 클래스/기반 클래스 와 자식 클래스/파생 클래스 라고 얘기합니다. class 자식클래스 : 접근지정자 부모클래스{멤버 변수와 함수 선언;}; 자식 클래스의 객체는 부모 클래스의 멤버를 새롭게 정의하지 않아도 멤버 참조가 가능합니다. (private 제외) 12345678910111213141516171819202122232425262728#include #include using namespace std; class Figure //부모 클래스{public: void setColor(const string color); string getColor(); pri..

Programming/C++ 2018.01.22

[C++] 파일 입출력 fstream

사용하기 위해서 #include 을 해야합니다. 파일 출력 클래스 ofstream. 출력할 내용을 파일 객체로 전달하면 됩니다. ofstream 파일출력객체;파일출력객체.open("출력파일이름");파일출력객체 > 입력 내용저장변수;파일입력객체.close(); 파일 존재 여부 확인 멤버 함수 fail() : 객체가 가리키는 파일이 없으면 true를, 객체가 가리키는 파일이 있으면 false를 반환합니다. 파일의 마지막 위치 확인 멤버 함수 eof() : 파일 포인터가 파일 마지막에 위치하면 true를, 파일 포인터가 파일 마지막이 아니면 false를 반환합니다. fstream 클래스는 open을 할 때 파일 모드를 설정해서 따로 입력 객체, 출력 객체 신경 쓰지 않고 쓸 수 있습니다. 12345678910..

Programming/C++ 2018.01.22

[C++] this

객체 자신을 가리키는 포인터입니다. 모든 객체는 this 포인터를 가지고 있습니다. 멤버 함수 내에서 매개변수와 멤버 변수의 이름이 동일할 경우 객체의 멤버 변수임을 명시하기 위해서 사용합니다. 123456789101112131415161718192021222324252627282930#include using namespace std; class SampleScore {public: void setScore(const int score); int getScore(); private: int score;}; void SampleScore::setScore(const int score) { this->score = score; //SampleScore::score = score;} int SampleSco..

Programming/C++ 2018.01.22

[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
반응형