본문 바로가기

Programming/C/C++19

C++ 상속시의 접근제어 지시자 멤버 변수에서의 접근제어 지시자의 의미는 아래와 같다. private : 클래스 내부에서만 접근가능. -> 상속시에는 멤버함수로만 접근 protected : 클래스 내부에서만 접근가능. -> 상속시에도 클래스 내부에서 접근 가능. public : 클래스 밖에서도 접근가능. 상속시에 접근제어 지시자는 접근 범위가 더 넓은 멤버를 제어하는데 사용한다. ex1) class Parent { private a; protected b; public c; } class Chlid : protected Parent { ... } 위의 경우에서 Child가 Parnet를 protected로 상속했으므로 protected보다 더 넓은 public c를 protected c로 상속한다는 의미가 된다. [*] 상속시 해당 클.. 2013. 3. 9.
C++ 상속시 생성자, 소멸자의 호출 - 상속에서 기초 클래스의 생성자와 유도 클래스의 생성자가 모두 호출된다. - 소멸자 역시 기초 클래스, 유도 클래스 둘다 호출된다. #include using namespace std; class Parent { private: int test1; public: Parent() : test1(1) { cout 2013. 3. 9.
복사 생성자 복사 생성자 객체를 인자로 받을 수 있는 생성자를 복사 생성자라고 한다. - const를 붙여 내용 변경 방지 - 복사 생성자는 &를 반드시 해줄것. ex) 복사 생성자의 정의가 필요한 경우 class Test{ private: char *mystr; public: Test(char *pstr) { mystr = new char[strlen(pstr)+1]; strcpy(mystr, pstr); } ~Test() { delete []mystr; } }; int main() { Test myobj("Hello ~~"); Test myobj2 = myobj; //또는 Test myobj2(myobj)의 경우 } 멤버 변수 mystr이 가지는 주소값만 복사될 뿐 실제 "Hello ~~"라는 문자열은 하나 밖에.. 2013. 2. 27.
C++ 기초 [3] [ const 함수 ] 1) const 함수 내에서는 멤버변수의 값을 변경하지 못한다. 2) const 함수 내에서는 const 아닌 함수의 호출이 제한된다. 3) 아래와 같이 선언된 const 참조자나 포인터 변수에서는 const함수만 호출가능하다. 4) const 키워드만으로도 오버로딩이 가능하다. (이 경우 const 객체에서 const 메소드 호출) TestClass *val1 = new TestClass; const TestClass &myobj2 = val1 ; const TestClass *myobj3 = val1 ; [ 생성자 ] 생성자는 객체 생성시 딱 한번 호출된다. 생성자 정의 : 클래스의 이름과 함수의 이름이 동일하게하고 반환형이 없이 만들면 됨. 객체 생성 예 ex) ExClass.. 2013. 2. 27.