Digolao 0 Denunciar post Postado Março 26, 2007 Estou desenvolvendo uma biblioteca onde serão utilizadas várias heranças, porém estou tendo um error de definição de classe, fiz um modelo bem básico. Se alguém poder me ajudar ficarei grato. Trecho do simpificado: class ClassA;class ClassB;class ClassA{public: ClassB getB();};ClassB ClassA::getB(){ ClassB ret(1); return ret;}class ClassB : public ClassA{private: int m_value;public: ClassB(int value);};ClassB::ClassB(int value) { m_value = value;}int main(){ return 0;} Compartilhar este post Link para o post Compartilhar em outros sites
Shison 0 Denunciar post Postado Abril 2, 2007 Olá, esta definição não está meio estranha? O que você realmente quer declarar aqui? ClassB ClassA::getB(){ ClassB ret(1); return ret;}Você estaria tentando instanciar um novo objeto ret do tipo ClassB e retorná-lo? Tente isto: ClassB ClassA::getB() { return new ClassB(1);} Agora, para que você quer um método em ClassA que retorne um objeto do tipo ClassB, se você vai estender a ClassA com a ClassB? Não faz muito sentido, será que você invés de estender, você não queria declarar uma propriedade do tipo ClassB dentro da ClassA? class ClassA { private: ClassB objB; public: ClassB getB();}; Compartilhar este post Link para o post Compartilhar em outros sites