반응형

분류 전체보기 46

[c++] virtual(가상함수,순수가상함수)

c++에서는 virtual 키워드를 통하여 가상함수와 순수가상함수를 정의할수 있다.먼저 가상함수와 일반함수의 차이점을 알아보자.일반함수는 상속된 자식class에서 오버라이드를 통한 재정의가 불가능하지만가상함수는 상속된 자식class에서 오버라이드를 통한 재정의가 가능하다. 1234567891011121314151617181920212223242526272829303132333435class Animal {//부모class public: void howl() { cout

프로그래밍/c++ 2018.12.19

[c++] class의 상속 (부모class 및 자식class)

상속이란 하나의 class의 내용을 다른 class에서 사용할 수 있게 하는것이다.사용되어지는 주체를 부모 class라고 하며, 사용을 하는 클래스를 자식 class라고 한다.1234567891011121314151617181920class p_class {// 부모classpublic: int p_int; p_class() { this->p_int = 1; }}; class c_class : public p_class {//자식class에 부모class int get_p_int() { return p_int; }}; int main(){ c_class c; std::cout

프로그래밍/c++ 2018.12.19

[c++] class의 생성자 및 소멸자

생성자란? 객체 선언시 실행되는 매소드이다.생성자를 통하여 맴버 변수의 값을 초기화 할 수 있으며 다양한 방법으로 활용이 가능하다.생성자는 오버로딩을 통하여 여러개 정의 할 수 있으며 객체선언시 파라미터를 통하여 해당 생성자를 호출한다. 1234567891011121314class test_class{public: int value; test_class()//생성자 정의 { this->value = 1; }}; int test_fnc()// 테스트 함수 { test_class test; //test_class 객체 선언 생성자 호출 return test.value; //생성자에서 value값을 1로 초기화 하였기 때문에 1이 리턴이 된다.} Colored by Color Scriptercs 반대로 소멸자..

프로그래밍/c++ 2018.12.19

[c++] class 정의 및 접근제한자

c에서 c++로 넘어오면서 새로 생긴 개념중의 하나가 class 이며 c++의 꽃이라고 불리운다.class란 객체 지향 프로그래밍에서 class란 같은 종류의 속성고 행위를 정의한것으로 사용자 정의 데이터 형이라고 할 수 있다. 선언방법을 알아보자123class test_class{ int value;};cs간단한 class를 하나 정의하였다.class 이름은 test_class이며 맴벼 변수로 int형인 value를 하나 가지고 있다. class에는 접근제한자라는 개념이 있는데 c++에서는 default가 private이다.접근제한자는 3가지 종류가 있다. 1. private - default 접근 제한자이며 class내부에서만 접근이 가능하다.2. public - 어디에서나 접근이 가능하다.3. pr..

프로그래밍/c++ 2018.12.19

[c++] 객체지향 프로그래밍에서의 캡슐화란?

캡슐화란 c++에서는 class 내부의 맴버 변수에 직접접근하는 방식이 아니라 간접적으로 맴버함수(매서드)를 사용하여 접근하는 형식을 말한다.왜 직접 접근하지 않고 굳이 간접접근을 해야 하는걸까? 직접 접근하는 방식은 다른 객체에 의해 값이 변경될 수 도 있고 보안상 좋지 못한 방법이기 때문에 캡슐화의 정보은닉은 오류발생도 줄여주고 보안성을 향상시켜 준다. 요약하자면1. 캡슐화는 데이터와 데이터를 처리하는 함수의 묶음이다.2. 객체의 데이터를 직접 수정할수 없고 지정된 메서드를 통해서만 수정이 가능하다.(게터,세터)3. 정보은닉으로 오류발생도 감소 및 보안성 향상이 된다. 1234567891011class test_class{private: int value;public: void set_value(in..

프로그래밍/c++ 2018.12.19

[c++] this 포인터

c++ 에서 class를 작성할때 class내부의 변수와 메서드의 파라미터의 변수의 이름이 같을경우메서드 구현시 변수를 사용하면 class 내부의 변수를 사용하는건지 파라미터의 변수를 사용하는건지의미가 모호해 질 수가 있다. 이럴 경우에 this포인터를 사용하여 모호성을 해소를한다. this 포인터를 사용하면 내부의 변수를 사용한다는 의미를 갖게하고사용하지 않을 경우 파라미터의 변수를 사용한다는 의미를 갖게 한다.1234567class test_class{public: int value; void set_value(int value){ this->value = value; }};cs위의 코드에서 this->value는 위에 선언된 클래스 내부 변수 value를 가르키고값으로 받는 value는 set_va..

프로그래밍/c++ 2018.12.19
반응형