에 의해 소유 클래스 내에서 ++ 기본 생성자 C 보호. 오류는 Some class : error C2248: cannot access protected member declared in class ''
입니다. 이 오류를 재현하는 코드는 다음과 같습니다. 보호 된 기본 생성자가있는 다른 개체를 소유하는 개체를 만드는 방법을 알아낼 수 없습니다. 입력 매개 변수를 사용하는 다른 생성자가 있지만 논리적 추론에 관계없이 호출 할 수는 없습니다. 분명히, 나는 바보 같거나 정말로 중요한 것을 놓치고있어, 그래서 누군가 내 실수를 잡을 수 있는지 알아보기 위해 여기에두고있다. 모두에게 감사합니다!오류 C2248 : 나는 마이크로 소프트 비주얼 스튜디오 10 컴파일러에서 얻을이 오류를 해결하기 위해 노력하고있어 다른 클래스
#ifndef FOO_H
#define FOO_H
class Foo {
public :
int myFooInt;
~Foo();
Foo(int fooInt);
protected : //Uncomment to generate C2248 Error
Foo();
};
#endif
.
#include "foo.h"
Foo::Foo() {
}
Foo::Foo(int fooInt) : myFooInt(fooInt) {
}
Foo::~Foo() {
}
.
#ifndef GOO_H
#define GOO_H
#include "foo.h"
class Goo {
public :
~Goo();
Goo();
Goo(Foo foo);
Foo myFoo;
};
#endif
.
#include "Goo.h"
Goo::Goo() {
}
Goo::Goo(Foo foo) : myFoo (foo) {
}
Goo::~Goo() {
}
.
#include "foo.h"
#include "goo.h"
void main() {
Foo foo(5);
Goo goo(foo);
}
당신에게 정말 고마워요 !!!! 이전에 int 입력 매개 변수를 사용하여 컨테이너 클래스의 생성자에 초기화 목록을 만들었지 만 내 기본 생성자에서도 생성자를 갖고 있다고 생각하지 않았습니다. 내 게시물을 철저히 읽으면서 정말 고마워. – nndhawan