C ++에서는 기본 클래스에서 공용 메서드를 호출 할 수 없습니다.

암레

다음과 같이 작성된 foo 및 foo2의 두 클래스가 있다고 가정 해 보겠습니다.

foo.h :

#ifndef __InheritanceTest__foo__
#define __InheritanceTest__foo__

#include <stdio.h>
class foo
{
public:
    foo();
    int getSize();
protected:
    int size;

};
#endif

foo.cpp :

#include "foo.h"

foo::foo()
{
    size = 23;
}

int foo::getSize()
{
    return size;
}

foo2.h :

#ifndef __InheritanceTest__foo2__
#define __InheritanceTest__foo2__

#include <stdio.h>
#include "foo.h"
class foo2: foo
{
public:
    foo2();
};
#endif

foo2.cpp :

#include "foo2.h"

foo2::foo2()
{
    size = size *2;
}

이것은 내 메인입니다.

#include <iostream>
#include "foo.h"
#include "foo2.h"

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    foo2 f2;
    int i = f2.getSize();
    std::cout << i << "\n";

    return 0;
}

두 가지 오류가 발생합니다.

'getSize'는 foo의 비공개 멤버입니다.

foo2를 전용 기본 클래스 foo로 캐스팅 할 수 없습니다.

0x499602D2

클래스를 통한 상속은 기본적으로 비공개입니다. 즉, 상속 된 데이터 멤버와 멤버 함수는 파생 클래스에서 전용이며 자신이나 클래스의 친구를 통해서만 액세스 할 수 있습니다.

키워드 public사용하여 공용 상속을 지정 하십시오 .

class foo2 : public foo
{ ... }

struct이는 데이터 멤버 및 멤버 함수에 대한 공용 상속 및 공용 액세스 권한 이있는의와는 다릅니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

모든 기본 클래스에서 동일한 메서드를 호출 할 수 없습니다.

분류에서Dev

C ++의 파생 클래스에서 기본 클래스 메서드를 오버로드 할 수 없습니다.

분류에서Dev

PyQt4가 QThread 클래스에서 기본 Gui 클래스의 함수를 호출 할 수 없습니다.

분류에서Dev

기본 클래스 목록에 파생 클래스를 추가 한 다음 C #의 기본 클래스 목록에서 Derived 클래스의 메서드를 호출 할 수 있습니까?

분류에서Dev

C # consoleApp은 별도의 클래스에서 정적 메서드를 호출 할 수 없습니다.

분류에서Dev

클래스 내에서 정적 메서드를 호출 할 수 없습니다.

분류에서Dev

Java의 클래스에서 void 메서드를 호출 할 수 없습니다.

분류에서Dev

SWIG 래퍼에서 전용 기본 클래스 멤버 함수를 노출 할 수 없습니다.

분류에서Dev

기본 클래스 C ++에서 변수에 액세스 할 수 없습니다.

분류에서Dev

C ++에서 클래스에서 공용 메서드를 호출 할 수 없음 : '<ClassName> :: <MethodName>'에 대한 정의되지 않은 참조

분류에서Dev

자바 스크립트에서 기본 창 개체의 하위 클래스에 대한 메서드를 호출 할 수 없습니다.

분류에서Dev

C ++ / CLI 가상 메서드, 파생 클래스에서 가상 메서드를 사용할 수 없습니다.

분류에서Dev

SQLiteOpenHelper 클래스의 동기화 된 getinstance 메서드를 저장소 클래스에서 호출 할 수 없습니다 (해결할 수 없음).

분류에서Dev

클래스에 정의 된 메서드를 호출 할 수 없습니다.

분류에서Dev

C ++ 파생 클래스는 초기화 전에 기본 클래스에서 메서드를 호출합니다.

분류에서Dev

기본 클래스 개체에 대한 파생 클래스 포인터는 파생 클래스의 메서드를 어떻게 호출 할 수 있습니까?

분류에서Dev

기본 클래스 개체에 대한 파생 클래스 포인터는 파생 클래스의 메서드를 어떻게 호출 할 수 있습니까?

분류에서Dev

기본 메서드에서 배열을 호출 할 수 없습니다.

분류에서Dev

다른 클래스 내에서 클래스 메서드를 호출 할 수 없습니다.

분류에서Dev

다른 클래스에서 메서드 호출-오류 : Customer 클래스의 생성자 Customer를 지정된 형식에 적용 할 수 없습니다.

분류에서Dev

클래스의 메서드 C #을 호출 할 수 없습니다.

분류에서Dev

다른 Objective-C 클래스에서 메서드를 어떻게 호출 할 수 있습니까?

분류에서Dev

HTML에서 Javascript 클래스를 호출 할 수 없습니다.

분류에서Dev

HTML에서 Javascript 클래스를 호출 할 수 없습니다.

분류에서Dev

C #에서 WMI 클래스를 사용할 수 없습니다.

분류에서Dev

자바에있는 다른 클래스에서 메소드를 호출 할 수 없습니다

분류에서Dev

초기화 전에 draggable에서 메서드를 호출 할 수 없습니다.

분류에서Dev

Swift에서 Objective-C 메서드를 호출 할 수 없습니다.

분류에서Dev

Rspec을 사용하여 Ruby의 다른 클래스에서 메서드를 호출하는 메서드를 어떻게 테스트 할 수 있습니까?

Related 관련 기사

  1. 1

    모든 기본 클래스에서 동일한 메서드를 호출 할 수 없습니다.

  2. 2

    C ++의 파생 클래스에서 기본 클래스 메서드를 오버로드 할 수 없습니다.

  3. 3

    PyQt4가 QThread 클래스에서 기본 Gui 클래스의 함수를 호출 할 수 없습니다.

  4. 4

    기본 클래스 목록에 파생 클래스를 추가 한 다음 C #의 기본 클래스 목록에서 Derived 클래스의 메서드를 호출 할 수 있습니까?

  5. 5

    C # consoleApp은 별도의 클래스에서 정적 메서드를 호출 할 수 없습니다.

  6. 6

    클래스 내에서 정적 메서드를 호출 할 수 없습니다.

  7. 7

    Java의 클래스에서 void 메서드를 호출 할 수 없습니다.

  8. 8

    SWIG 래퍼에서 전용 기본 클래스 멤버 함수를 노출 할 수 없습니다.

  9. 9

    기본 클래스 C ++에서 변수에 액세스 할 수 없습니다.

  10. 10

    C ++에서 클래스에서 공용 메서드를 호출 할 수 없음 : '<ClassName> :: <MethodName>'에 대한 정의되지 않은 참조

  11. 11

    자바 스크립트에서 기본 창 개체의 하위 클래스에 대한 메서드를 호출 할 수 없습니다.

  12. 12

    C ++ / CLI 가상 메서드, 파생 클래스에서 가상 메서드를 사용할 수 없습니다.

  13. 13

    SQLiteOpenHelper 클래스의 동기화 된 getinstance 메서드를 저장소 클래스에서 호출 할 수 없습니다 (해결할 수 없음).

  14. 14

    클래스에 정의 된 메서드를 호출 할 수 없습니다.

  15. 15

    C ++ 파생 클래스는 초기화 전에 기본 클래스에서 메서드를 호출합니다.

  16. 16

    기본 클래스 개체에 대한 파생 클래스 포인터는 파생 클래스의 메서드를 어떻게 호출 할 수 있습니까?

  17. 17

    기본 클래스 개체에 대한 파생 클래스 포인터는 파생 클래스의 메서드를 어떻게 호출 할 수 있습니까?

  18. 18

    기본 메서드에서 배열을 호출 할 수 없습니다.

  19. 19

    다른 클래스 내에서 클래스 메서드를 호출 할 수 없습니다.

  20. 20

    다른 클래스에서 메서드 호출-오류 : Customer 클래스의 생성자 Customer를 지정된 형식에 적용 할 수 없습니다.

  21. 21

    클래스의 메서드 C #을 호출 할 수 없습니다.

  22. 22

    다른 Objective-C 클래스에서 메서드를 어떻게 호출 할 수 있습니까?

  23. 23

    HTML에서 Javascript 클래스를 호출 할 수 없습니다.

  24. 24

    HTML에서 Javascript 클래스를 호출 할 수 없습니다.

  25. 25

    C #에서 WMI 클래스를 사용할 수 없습니다.

  26. 26

    자바에있는 다른 클래스에서 메소드를 호출 할 수 없습니다

  27. 27

    초기화 전에 draggable에서 메서드를 호출 할 수 없습니다.

  28. 28

    Swift에서 Objective-C 메서드를 호출 할 수 없습니다.

  29. 29

    Rspec을 사용하여 Ruby의 다른 클래스에서 메서드를 호출하는 메서드를 어떻게 테스트 할 수 있습니까?

뜨겁다태그

보관