Derived
클래스 생성자는 첫 번째 인수로 ii
을 갖지만 Base
에 전달 된 인수는 목적 상 i
과 동일하게 만들어졌습니다.컴파일러가 파생 클래스 생성자의 정의에 불만을 나타내지 않는 이유는 무엇입니까?
class Base
{
protected:
int i;
public:
Base(int i) : i(i) {}
};
class Derived : public Base
{
private:
int k;
public:
Derived(int ii, int k) : Base(i), k(k) {} // Why not C2065: 'i' undeclared identifier
};
int main()
{
}
확실히 컴파일러는 코드가 단위 변환 된 변수를 사용한다는 것을 알기에 충분한 정보를 가지고 있습니다. 개발 팀이 귀중한 인력을 사용하여 (VS2010의 일부 C++ 11 지원과 같이)이 대신 다른 것을 개발하기로 결정했기 때문에 불평하지 않습니다. –