컴퓨터 언어 83

[C++] C++ 17일차 오버로딩 3 (클래스 객체 복사시 주의사항)

안녕하세요. 훈츠입니다. 금일은 클래스 객체 복사에 관련 포스팅 합니다. 클래스 객체 복사의 문제점 생성자에 메모리 할당이 있는 경우는 프로그램이 다운되며, 복사와 동시에 클래스를 초기화 하는 경우 생성자가 호출되지 않습니다. 메모리를 생성하는 생성자를 사용하는 경우 클래스 객체의 복사는 해제할 메모리 주소를 잃어버리게 하여 프로그램을 다운되게 합니다. 클래스를 복사함과 동시에 초기화 하는것은 생성자가 호출되지 않는 단점이 있다. 객체 복사시, 생성자 호출 되지 않는 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //Hoons Blog---https://rain2002kr.tistory.com--------------------------------------..

[C++] C++ 16일차 함수 오버로딩 2

안녕하세요. 훈츠입니다. 금일은 함수 오버로딩에 관해 포스팅 합니다. 함수 오버로딩 함수 오버로딩은, 같은 기능을 하지만 다른 매개변수를 처리해야할때 사용하시면 좋습니다. 클래스 안에서 함수명을 중복하여 사용 가능합니다. 함수의 매개변수로 같은 함수를 구분 합니다. 매개변수만 오버로딩에 관계되며 리턴형은 상관 없습니다. 형식 리턴형 함수명 (매개 변수들…) 오버로딩시 주의 사항 매개 변수의 모호성에 유의 하세요. 오버로딩 예시 코드 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 //Hoons Blog---https://rain2002kr.tistory.com----------------------------..

[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..