첫째로 클래스부터 구조체를 정의 내 코드입니다 class_child.h :C++, 아래로 통과 이미 모두 여기의 다른
#include "class_parent.h"
class class_child: public class_parent
{
public:
void function_of_child();
class_child();
~class_child();
};
cl ass_child.cpp : messageStruct_ [1-3]를 예상 할 수 있던, 정의되지 않은 것을
#include "stdafx.h"
#include "class_child.h"
#include "class_parent.h"
#include <iostream>
void class_child::function_of_child()
{
function_of_parent();
std::cout << " Child Class says: " << messageStruct_one.message //here I want to use messageStruct_[one-three]
<< " " << messageStruct_two.message << " " << messageStruct_three.message << std::endl; //which was defined in the parent class
std::cout << " " << x << "\n\t" << std::endl;
}
내가 그것을 컴파일하려면, 그것은 말한다. 구조체는 클래스와 유사하지만 parent_class_function에서 messageStruct_를 사용하는 방법을 찾을 수 없다는 것을 알고 있습니다. 자식 클래스에서 newStruct를 사용하여 messageStruct_를 사용하면 문제가 없지만 부모 클래스의 messageStruct_를 사용하고 싶습니다. 그게 가능한가?
미리 감사드립니다.
'class_parent.h'헤더의 내용도 표시 할 수 있습니까? –
원하는 것을 더 자세히 설명 할 수 있습니까? 'newStruct'는 부모 클래스와 자식 클래스에서 사용할 수있는 유형입니다. 'messageStruct ...'는 함수에 대한 지역 변수입니다 (여러분이 알고있는 것처럼 보입니다). 클래스 멤버로 정의하면 액세스 할 수 있습니다. 이게 니가 원하는거야? 귀하의 설명은 매우 모호합니다. – infiniteRefactor
귀하의 코드는 newStruct 구조체를 부모 함수 내에서 로컬로 선언합니다. 이것이 당신의 하위 클래스가 세 개의 구조체를 정의하지 않은 이유이다. 범위가 문제입니다. –