fullstack

'전체 글'에 해당되는 글 76건

  1. [C++] 오버라이딩 (Overriding)
  2. [C++] 객체 포인터
  3. 안보이는 폴더 만들기

[C++] 오버라이딩 (Overriding)

Language/C++

상속 관계에서 Base 클래스에서 선언한 멤버는 Derived 클래스에서 물려받는다고 하였다.

이때 Derived 클래스에서 Base 클래스에서 선언된 멤버를 다시 선언하여 재정의 하는것을 오버라이딩(Overriding)이라고 한다.

다음은 오버라이딩 예제이다.


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
#include <iostream>
using namespace std;
 
class AAA
{
public:
    void func() { cout << "AAA" << endl; }
};
 
class BBB : public AAA
{
public:
    void func() { cout << "BBB" << endl; }
};
 
int main()
{
    BBB b;
    b.func();
 
    AAA* a = new BBB;
    a->func();
 
    return 0;
}




위의 예제를 보면 AAA 클래스에서 func라는 함수를 정의하였고 AAA 클래스를 상속하는 BBB 클래스에서 func 함수를 다시 정의해 오버라이딩 하였다.

BBB 클래스 객체인 b에서 func 함수를 호출하자 오버라이딩 이전에 정의된 AAA 클래스의 func 함수는 가려지고 BBB 클래스의 func 함수가 호출되는 것을 볼 수 있다.

하지만, 객체포인터를 이용하여 AAA 클래스를 가리킨다면 AAA 클래스에 정의된 func 함수가 호출되는 것을 볼 수 있다.


'Language > C++' 카테고리의 다른 글

[C++] static binding & dynamic binding  (0) 2015.12.26
[C++] virtual 키워드  (0) 2015.12.24
[C++] 객체 포인터  (0) 2015.12.22
[C++] 상속의 조건. is-a 와 has-a  (0) 2015.12.19
[C++] 상속 (Inheritance)  (0) 2015.12.03

[C++] 객체 포인터

Language/C++

객체 포인터는 해당 객체의 주소값 뿐만 아니라 해당 클래스를 상속하는 Derived 클래스 객체의 주소값도 저장이 가능하다.


1
2
3
4
5
6
7
8
9
10
int main()
{
    Person* p1 = new Person;
    Person* p2 = new Student;
 
    p1->sleep();
    p2->sleep();
 
    return 0;
}



위의 예제는 Student가 Person을 상속하고 있을 때 객체 포인터 예제이다.

Person 과 Student는 is-a 관계에 의해서 Student는 Person이므로, Student 클래스의 객체는 Person 클래스의 객체이다.

따라서 Person 타입의 포인터로 Student 객체를 가리킬 수 있다.




1
2
3
4
5
6
7
8
9
10
int main()
{
    Person* p1 = new Person;
    Person* p2 = new Student;
 
    p1->sleep();
    //p2->study();    // error
 
    return 0;
}



위의 예제에서는 Student 클래스에만 존재하는 study 함수를 호출하려하자 에러가 발생하였다.

객체 포인터 권한의 특성때문인데, 해당 클래스의 객체 포인터는 가리키는 대상이 어떤 객체이건, 해당 클래스 타입 내에 선언된 멤버와 해당 클래스가 상속한 클래스의 멤버에만 접근이 가능하다.

즉, p2 객체는 Person 타입의 포인터이므로, Person 클래스 내에 선언된 멤버에만 접근이 가능하다.

'Language > C++' 카테고리의 다른 글

[C++] virtual 키워드  (0) 2015.12.24
[C++] 오버라이딩 (Overriding)  (0) 2015.12.24
[C++] 상속의 조건. is-a 와 has-a  (0) 2015.12.19
[C++] 상속 (Inheritance)  (0) 2015.12.03
[C++] mutable 키워드  (0) 2015.12.03

안보이는 폴더 만들기

Tip

간단한 방법으로 안보이는 폴더를 만들수 있다.




1. 새폴더를 만든다.



2. 이름을 공백으로 바꾸어 준다.

공백은 ㄱ+한자+1 로 선택하면 된다.



3. 폴더의 속성 - 사용자 지정 - 아이콘 변경을 선택한다.



4. 아이콘 중 투명한 아이콘을 선택한다.





이렇게 하면 다음과 같이 폴더가 보이지 않게 된다.



드래그를 해보면 폴더가 있다는 것을 알 수 있다.



보안성은 별로 없지만 이렇게 간단한 방법으로 폴더를 숨겨볼 수 있다.

폴더 뿐만 아니라 다른 파일도 같은 방법으로 가능하다.

'Tip' 카테고리의 다른 글

가상 하드 디스크(VHD) 만들기  (0) 2015.11.30