Out-of-line definition error on a class but it is declared in the header file [closed]
Asked Answered
A

1

16

Now this is a weird problem. I was coding two days ago and stopped and then continued just now. On my header file (Fruit.h) I added a method called animateGrow() like so:

Fruit.h:

class Fruit {
private:
   // Member variables here

public:
   // Other methods here
   void animateGrow( );
};

But when I try to add the same method in the CPP file, I get an Out-of-line definition of 'animateGrow' does not match any declaration in 'Fruit' error. It's declared in the header but Xcode does not seem to be able to find that method.

Fruit.cpp:

#include "SimpleAudioEngine.h"
#include "Fruit.h"
#include "Tree.h"

using namespace cocos2d;
using namespace CocosDenshion;

Fruit::Fruit( ) {
   // Constructor
}

// Getter Methods
// Setter Methods
// Other Methods

void Fruit::animateGrow( ) {
   // I get an error here when I type it.
}

Full Code: (links removed) (In the code, the Tree class exists and all other methods and functions are working fine except for the animateGrow() as it gives me the error)

Afterdeck answered 9/8, 2012 at 3:40 Comment(6)
You should close the question, as its usefulness for future users is limited to none. Glad you fixed it, and good luck.Hamburger
@DavidRodríguez-dribeas How do I close a question? Sorry, I'm not familiar with this.Afterdeck
Uhm... is there not a link below the tags? (It might be that you need some reputation to do that... if the link is not there, don't worry, someone else will close it --I already voted to close, it just needs a couple more votes :)Hamburger
@DavidRodríguez-dribeas Oh, there's no close link, just share, edit, delete, and flag. Thanks :)Afterdeck
I disagree - I came here today looking for a solution to the exact same error message, and there are 6 upvotes on this question. Propose it is re-opened.Jointure
I bumped into this exact problem when renaming class and header files (decided to cvt. objC to cpp rather than wrapping). I couldn't figure out what was going on since my header file looked OK, but I got the error. Re-starting Xcode was all it took. This post saved me a lot of time! Thanks @Lance!Leathaleather
A
10

Fixed it.

I don't know why but Xcode did not save my changes on the header file. I closed Xcode and opened the header file and the changes aren't there. I added the methods again and saved. I opened the CPP file added the new method in it worked fine.

Really weird.

Afterdeck answered 9/8, 2012 at 3:54 Comment(3)
After being reopened Xcode appears to be OK in my case :)Alisander
I had the exact same error message on BSD using clang. Your answer made me look at the header for my code, sure enough, I didn't declare the func in the header. Thanks!Neuroblast
boom, bang! debugging someone's speghetti code and got this weird error, worked defined class in header, solved.Upstart

© 2022 - 2024 — McMap. All rights reserved.