프로그램에서 액세스 지정자를 변경하면 프로그램의 동작이 변경 될 수 있습니까?

굽타

코드에서 액세스 지정자 (공개 / 보호 / 개인)를 변경하면 해당 프로그램의 동작이 변경되는 C ++ 프로그램의 경우가 있는지 궁금합니다.

Aschepler

본질적으로 순전히 런타임에 발생하는 한 가지 흥미로운 예는 프로그램이 액세스 수준에서 파생 된 일부 정보를 알아야한다는 것을 의미합니다. [except.handle] /3.2 에 따라 예외 처리기가 명확하고 공개적인 기본 클래스를 허용하면 예외 처리기가 예외 개체와 일치합니다. 예외 객체의 클래스 유형.

#include <iostream>

class Base {};

void test(void (*thrower)()) {
    try {
        thrower();
    } catch (Base&) {
        std::cout << "Caught a Base." << std::endl;
    } catch (...) {
        std::cout << "Not a Base?" << std::endl;
    }
}

class D1 : public Base {};
class D2 : private Base {};

int main() {
    std::cout << "Test D1" << std::endl;
    test([]() { throw D1{}; });
    std::cout << "Test D2" << std::endl;
    test([]() { throw D2{}; });
}

이것은 다음을 인쇄합니다.

Test D1
Caught a Base.
Test D2
Not a Base?

... 사이의 유일한 차이에도 불구 D1하고 D2액세스 지정자 키워드의 변화입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

응용 프로그램간에 .proto 파일의 네임 스페이스를 변경할 수 있습니까?

분류에서Dev

PrepareForSegue는 작동하지만 대상의 변수에 액세스하면 응용 프로그램이 충돌합니다.

분류에서Dev

systemd에서 시작한 서비스 프로세스 인 경우 어떻게 자신의 프로그램을 체크인 할 수 있습니까?

분류에서Dev

쉬운 명령 줄 액세스를 위해 Windows 환경 변수에 프로그램 경로를 추가하려면 어떻게해야합니까?

분류에서Dev

프롤로그. 변수에 값을 지정하면 프로그램 출력이 '예'에서 '아니오'로 변경됩니다.

분류에서Dev

서브 프로그램에서 반환 될 때 변수가 할당되지 않습니까? 파이썬 3?

분류에서Dev

ini 파일로 텍스트 파일을 변경하면 프로그램이 작동하지 않습니다.

분류에서Dev

왜 프로그램이 실행될 수 있는지 CLASSPATH 변수를 설정하지 않았습니다.

분류에서Dev

C # 프로그램에서 웹 서비스 헤더를 변경할 수 있습니까?

분류에서Dev

응용 프로그램이 스택을 변경하는 경우 함수형 프로그래밍에서 '순수'란 무엇을 의미합니까?

분류에서Dev

코드 테스트를 위해 환경 변수에서 응용 프로그램을 격리하는 방법이 있습니까?

분류에서Dev

아래 C 프로그램에서 다른 파일의 정적 변수에 어떻게 액세스 할 수 있습니까?

분류에서Dev

응용 프로그램 전체에서 액세스 할 수있는 cakephp에서 변수를 정의하는 방법은 무엇입니까?

분류에서Dev

프로세스 자체가 배경이 될 수 있습니까?

분류에서Dev

UserControl의 텍스트 변경 이벤트가 Windows 응용 프로그램에서 발생하지 않습니다.

분류에서Dev

함수 호출에서 액세스 할 수있는 RPG 프로그램에서 전역 변수를 어떻게 정의합니까?

분류에서Dev

font-awesome 및 css를 사용하면 CSS 변경으로 아이콘이 변경 될 수 있습니까?

분류에서Dev

C ++에서 프로그램 자체의 코드를 변경할 수 있습니까?

분류에서Dev

C ++에서 프로그램 자체의 코드를 변경할 수 있습니까?

분류에서Dev

M / R 프로그램에서 맵 및 축소 작업의 수는 변경되지 않습니다.

분류에서Dev

jenkins-외부 프로그램 ( "쉘 스크립트")이 단계를 변경할 수 있습니까?

분류에서Dev

파이썬 프로그램에서 몇 가지 매개 변수와 함께 사용자 정의 함수를 여러 번 사용할 수 있습니까?

분류에서Dev

Linux에서 각 프로세스가 한 번 실행될 환경 변수를 설정할 수 있습니까?

분류에서Dev

조건 변수 프로그램은 2 개의 스레드에서 작동하지만 3 개의 스레드에서는 작동하지 않습니다.

분류에서Dev

전체 프로그램에서 동일하게 유지되는 C # 프로그램의 시작 부분에 (무작위) 변수를 정의 할 수 있습니까?

분류에서Dev

선언 된 클래스 변수가 프로그램의 어느 곳에서도 사용되지 않으면 Eclipse가 경고를 표시하지 않는 이유

분류에서Dev

내 SQL Server 데이터베이스가 내 프로그램보다 느리기 때문에 내 프로그램의 변경 사항이 때때로 적용되지 않을 수 있습니까?

분류에서Dev

프로그램 또는 앱의 언어를 변경하는 스크립트를 Windows 10에서 실행하는 방법이 있습니까?

분류에서Dev

웹 서비스의 URL을 변경했기 때문에 내 응용 프로그램이 작동하지 않습니다.

Related 관련 기사

  1. 1

    응용 프로그램간에 .proto 파일의 네임 스페이스를 변경할 수 있습니까?

  2. 2

    PrepareForSegue는 작동하지만 대상의 변수에 액세스하면 응용 프로그램이 충돌합니다.

  3. 3

    systemd에서 시작한 서비스 프로세스 인 경우 어떻게 자신의 프로그램을 체크인 할 수 있습니까?

  4. 4

    쉬운 명령 줄 액세스를 위해 Windows 환경 변수에 프로그램 경로를 추가하려면 어떻게해야합니까?

  5. 5

    프롤로그. 변수에 값을 지정하면 프로그램 출력이 '예'에서 '아니오'로 변경됩니다.

  6. 6

    서브 프로그램에서 반환 될 때 변수가 할당되지 않습니까? 파이썬 3?

  7. 7

    ini 파일로 텍스트 파일을 변경하면 프로그램이 작동하지 않습니다.

  8. 8

    왜 프로그램이 실행될 수 있는지 CLASSPATH 변수를 설정하지 않았습니다.

  9. 9

    C # 프로그램에서 웹 서비스 헤더를 변경할 수 있습니까?

  10. 10

    응용 프로그램이 스택을 변경하는 경우 함수형 프로그래밍에서 '순수'란 무엇을 의미합니까?

  11. 11

    코드 테스트를 위해 환경 변수에서 응용 프로그램을 격리하는 방법이 있습니까?

  12. 12

    아래 C 프로그램에서 다른 파일의 정적 변수에 어떻게 액세스 할 수 있습니까?

  13. 13

    응용 프로그램 전체에서 액세스 할 수있는 cakephp에서 변수를 정의하는 방법은 무엇입니까?

  14. 14

    프로세스 자체가 배경이 될 수 있습니까?

  15. 15

    UserControl의 텍스트 변경 이벤트가 Windows 응용 프로그램에서 발생하지 않습니다.

  16. 16

    함수 호출에서 액세스 할 수있는 RPG 프로그램에서 전역 변수를 어떻게 정의합니까?

  17. 17

    font-awesome 및 css를 사용하면 CSS 변경으로 아이콘이 변경 될 수 있습니까?

  18. 18

    C ++에서 프로그램 자체의 코드를 변경할 수 있습니까?

  19. 19

    C ++에서 프로그램 자체의 코드를 변경할 수 있습니까?

  20. 20

    M / R 프로그램에서 맵 및 축소 작업의 수는 변경되지 않습니다.

  21. 21

    jenkins-외부 프로그램 ( "쉘 스크립트")이 단계를 변경할 수 있습니까?

  22. 22

    파이썬 프로그램에서 몇 가지 매개 변수와 함께 사용자 정의 함수를 여러 번 사용할 수 있습니까?

  23. 23

    Linux에서 각 프로세스가 한 번 실행될 환경 변수를 설정할 수 있습니까?

  24. 24

    조건 변수 프로그램은 2 개의 스레드에서 작동하지만 3 개의 스레드에서는 작동하지 않습니다.

  25. 25

    전체 프로그램에서 동일하게 유지되는 C # 프로그램의 시작 부분에 (무작위) 변수를 정의 할 수 있습니까?

  26. 26

    선언 된 클래스 변수가 프로그램의 어느 곳에서도 사용되지 않으면 Eclipse가 경고를 표시하지 않는 이유

  27. 27

    내 SQL Server 데이터베이스가 내 프로그램보다 느리기 때문에 내 프로그램의 변경 사항이 때때로 적용되지 않을 수 있습니까?

  28. 28

    프로그램 또는 앱의 언어를 변경하는 스크립트를 Windows 10에서 실행하는 방법이 있습니까?

  29. 29

    웹 서비스의 URL을 변경했기 때문에 내 응용 프로그램이 작동하지 않습니다.

뜨겁다태그

보관