컴퓨터 언어/C++ 27

[C++] C++ 15일차 연산자 오버로딩

안녕하세요. 훈츠입니다. 금일은 연산자 오버로딩에 관해 포스팅 합니다. 연산자 오버로딩 연산자 오버로딩은, 간략한 표기와 고유의 의미를 유지하여 가독성과 코드 작성을 짧게 할 수 있습니다. 기본 연산자의 기능을 객체에도 적용 연산자를 중복해서 정의 하는것 고유 연산자 기능 외에 사용자가 정의한 기능을 연산자로 실행하게 하는 것 형식 리턴형 Operator 연산자 (매개 변수들…) 오버로딩이 불가능한 연산자 . (멤버 선택시 사용하는 dot) , .* , ?:, sieof :: (범위 한정 연산자) 오버로딩 예시 이항 연산자인 사칙 연산자 단항 연산자인 증가 연산자 ++ (전치형, 후치형) 코드1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2..

[C++] C++ 14일차 가상함수와 추상클래스

안녕하세요. 훈츠입니다. 금일은 가상함수와 추상 클래스에 대해 포스팅 합니다. 가상 기본 클래스 ( virtual base class ) 다중 상속에서 기본 클래스가 한번만 생성되게 하기 위한 키워드 'virtual' 입니다. ※ 형식 public B : virtual public A { } 상속 접근 지정자 앞에 virtual를 붙입니다. Virtual 선언 안 했을때 virtual 를 선언 하지 않았을때, 중복으로 생성자가 만들어지는 것을 확인 할수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 //훈스 블로그--------------------------------------..

[C++] C++ 13일차 가상함수와 다형성

안녕하세요. 훈츠입니다. 금일은 클래스의 가상함수와 다형성에 대해 포스팅 합니다. 가상 함수 상위 클래스에 정의된 함수를 파생 클래스에서 재정의 한 함수 입니다. 오버라이딩 관계입니다. 상위 클래스의 함수의 매개변수는 같아야 하고, 리턴형은 상관 없습니다. ※ 형식 virtual return형 함수명( 매개변수 ) { } main 에서 사용 시, 클래스 포인터 혹은 참조자를 이용 할 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 //훈스 블로그-------------------------------------------..

[C++] C++ 12일차 상속 4

안녕하세요. 훈츠입니다. 금일은 클래스의 서브타입과 다중상속에 대해 포스팅 합니다. 서브 타입의 원리 클래스를 포인터로 선언후, 하위 클래스에서 상위 클래스로 접근이 가능 하다. (암시적 형변환) 하위 클래스에서 상위 클래스로 암시적 형변환이 된다. 상위 클래스에서 상위클래스로 접근은 불가 하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 //훈스 블로그---------------------------------------------------------------------------------------------------코드// class A ..

[C++] C++ 11일차 상속 3

안녕하세요. 훈츠입니다. 금일은 클래스간 관계와 생성자 상속과 호출에 대해 정리 해보도록 하겠습니다. 클래스 관계 설정 ( 클래스 계통도 ) is - a 관계 ( 상속 ) 접근 지정자를 통한 상속 관계 has - a 관계 다른 클래스를 멤버로 가지고 있는 관계 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //훈스 블로그---------------------------------------------------------------------------------------------------코드// class A { public: void Print() { cout cs 생성자 상속과 호출 기본 생성자는 상속되지 않는다. 생성자에 매개변수가 있는 경우, 파생 클래스에서 상..

[C++] C++ 10일차 상속 2

안녕하세요. 훈츠입니다. 금일은 클래스간 상속시 접근 지정자가 어떻게 동작 하는지 정리 해보도록 하겠습니다. 파생 클래스에서 기본 클래스에 대한 접근 권한 [ 기본 클래스 멤버 속성 ] A class B class : public A B : protected A B : private A private 사용 불가 사용 불가 사용 불가 protected private 사용 private 사용 private 사용 public public 사용 private 사용 private 사용 private 멤버 : 사용 불가 protected : private 로 사용 public : public 및 private 로 사용 ※ 코드 예시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1..

[C++] C++ 9일차 상속 1

안녕하세요. 훈츠입니다. 금일은 상속에 대해 정리 해보도록 하겠습니다. 상속 (inheritance) 기본 클래스의 속성을 물려 받는것을 상속이라고 합니다. 상속을 받는 클래스를 자식 클래스라고 부르며, 상속을 해주는 클래스를 부모 클래스라고 부릅니다. 자식 클래스에서는 부모 클래스의 속성을 그대로 사용할수도 있고, 새로운 기능을 추가 할수도 있습니다. 상속을 해주는 클래스 : base class, super class, parent class , 최상위 클래스 라고 불립니다. 상속을 받는 클래스 : sub class, child class, 자식 클래스, 하위클래스, 최화위 클래스 라고 불립니다. ※ 형식1 (단일 상속) 1 2 3 4 5 6 7 8 9 10 //훈스 블로그----------------..

[C++] C++ 9일차 클래스 3 생성자, 소멸자, this

안녕하세요. 훈츠입니다. 금일은 클래스의 생성자와 소멸자 그리고this 키워드에 대해 정리 해보도록 하겠습니다. 생성자 (constructor) 객체가 생성될때 명시 하지 않아도, 자동으로 호출되는 함수 이다. 객체를 초기화하는 함수 이다. public 속성을 가진다. 소멸자 (destructor) 객체가 소멸될때 명시 하지 않아도, 자동으로 호출되는 함수 이다. 객체가 메모리 해제가 될때 호출 하는 함수 이다. 생성자와 동일하게 클래스명과 같은 이름의 함수이며, '~' 를 소멸자 앞에 붙인다. public 속성을 가진다. #include #include using namespace std; class Spoint { protected: int m_nX, m_nY; public : //생성자 Spoint..

[C++] C++ 8일차 클래스 2 접근지정자(public, private , protected )

안녕하세요. 훈츠입니다. 금일은 클래스 접근지정자에 대해 정리 해보도록 하겠습니다. 접근 지정자 (public, private, protected) 외부에서 클래스의 멤버에 접근하여 사용할 수 있는 권한을 제한하는 역활 class 에서 접근 지정자를 사용하지 않은 멤버들은 기본적으로 private가 적용 접근 지정자의 적용 범위는 다음 접근 지정자가 나올 때까지이다. public 외부에서 모든 멤버에 접근하여 멤버 함수 호출 및 변수의 사용이 가능 합니다. #include #include using namespace std; class Spoint { public : int m_x, m_y; void Print() { cout

[C++] C++ 8일차 클래스 1

안녕하세요. 훈츠입니다. 금일은 클래스에 대해 정리 해보도록 하겠습니다. 클래스 (Class) 사용자가 정의 하며, 변수와 함수로 구성이 가능 합니다. class 키워드를 선언 하면 객체(object)가 됩니다. 객체 정의를 위한 키워드 입니다. 구성 : 변수 와 함수 기본 형식 class 클래스 명 { 멤버 리스트 (변수와 함수) }; 멤버 리스트에 변수 선언시 관례적으로 변수 앞 'm_' 를 붙입니다. 사용 예시 ※ 클래스 선언 ( 함수 바디 포함 ) #include #include using namespace std; class Spoint { int m_x, m_y; void Print() { cout