CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 6 of 6
  1. #1
    Join Date
    Dec 2010

    [beginner] Include problems tidying up code

    I've currently trying to convert a little project written in C++ into a more conventional style. I'm learning the very basics of C++ and I thought it would help me to understand. What the original author has done is write a lot of code in header files. He has used them almost exclusively. I thought it would be a good idea to create proper header and .cpp files.

    The header I'm looking at right now has no includes or anything. It goes straight into defining the one function that it consists of. When I try to put the prototype of the function in the header, and the actual function into its own .cpp file I get a lot of problems with non included variables (even namespace std).

    What was available to the old header when it had the whole function in it? How could the old header have this information and the cpp file I created doesn't?

    Just to clarify:
    older header had:
    void func_name() {
    code, no sign of any includes

    void func_name();

    cpp file:
    void func_name() {
    code, no sign of any includes
    exact same as previous.h

    Thanks you for your help.

  2. #2
    Join Date
    Nov 2007

    Re: [beginner] Include problems tidying up code

    Post some code that demonstrates the problem or I don't think anyone can figure out what the problem is.

  3. #3
    Join Date
    Apr 2000
    Belgium (Europe)

    Re: [beginner] Include problems tidying up code

    the old header... unless it gets included somewhere... doesn't get compiled. So it can contain just about anything and not cause any problems.

  4. #4
    Join Date
    Dec 2010

    Re: [beginner] Include problems tidying up code

    It does get included. It's so frustrating working with this sloppy code. I mean I'm no good but even to me this looks like bad news. I thought there might be some logic to it but apparently not. I'll keep investigating other routes...

  5. #5
    Join Date
    Jul 2010

    Re: [beginner] Include problems tidying up code

    Remember that each cpp file must include it's own header so that the functions can call each other.
    I use these macros to keep loops clean and simple.
    #define LoopForward(min,var,max) for(var=min;var<=max;var++)
    #define LoopBackward(min,var,max) for(var=max;var>=min;var--)
    #define LoopForwardStartAndLength(var,start,length) LoopForward(start,var,((start)+(length))-1)
    #define LoopBackwardStartAndLength(var,start,length) LoopBackward(start,var,((start)+(length))-1)
    #define LoopForwardLengthFromZero(var,length) LoopForward(0,var,(length)-1)
    #define LoopBackwardLengthFromZero(var,length) LoopBackward(0,var,(length)-1)

  6. #6
    Join Date
    Oct 2006

    Re: [beginner] Include problems tidying up code

    I don't see how those macros makes the code cleaner. In my opinion all they do is to make things more obfuscated. Do you have macros like
    #define DIVIDE(x,y) (x/y)
    #define ASSIGN(x,y) (x=y)
    #define COMPARE(x,y) (x==y)
    as well?
    Debugging is twice as hard as writing the code in the first place.
    Therefore, if you write the code as cleverly as possible, you are, by
    definition, not smart enough to debug it.
    - Brian W. Kernighan

    To enhance your chance's of getting an answer be sure to read
    and http://www.codeguru.com/forum/showthread.php?t=366302 before posting

    Refresh your memory on formatting tags here

    Get your free MS compiler here

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Windows Mobile Development Center

Click Here to Expand Forum to Full Width

On-Demand Webinars (sponsored)

We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.