hi problem, with c++ code i am learn so plz tell me what i did worng and how fix

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • fastwings

    hi problem, with c++ code i am learn so plz tell me what i did worng and how fix

    mm the code
    //////makemenu.h////
    class menu {

    public:
    int op;
    pmenu(int op,int sub = 0)
    {
    switch op
    {
    case 1:
    show(op,0);
    break;
    case 2:
    show(op,0);
    break;
    case 3:
    show(op,0);
    break;
    case 4:
    show(op,0);
    break;
    default:
    msgerr(01);
    }
    }
    show (int op,int sub=0)
    {
    cont<<"ok"<<end 1<<"u press : "<<op;
    }
    };
    /////////menus.cpp//////
    #ifndef __file__
    #define __file__ "telcom.db"
    #endif
    #include <iostream.h>
    #include <stdio.h>
    #include <fstream.h>
    #include "makemenu.h "
    main {
    menu p1;
    char option;
    int total=3,stot=9, op;
    showstars(total ,stot);
    cont<<"Enter number 1-4"<<end1;
    option = getchar();
    p1.pmenu(option ,0);
    return(0);
    }
    showstars(int line,int chrs)
    {
    int i;
    for (i=1;i<=line;i+ +)
    {
    if (i != 1)
    {
    cont<<end1<<set fill("*")<<setw (chrs);
    }
    else
    {
    cont<<setfill(" *")<<setw(chrs) ;
    }
    }
    cont<<end1;
    return(1);
    }
    the errors:
    --------------------Configuration: tt - Win32
    Debug--------------------
    Compiling...
    menus.cpp
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(24)
    : warning C4183: 'pmenu': member function definition looks like a
    ctor, but name does not match enclosing class
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(28)
    : warning C4183: 'show': member function definition looks like a ctor,
    but name does not match enclosing class
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(8) :
    error C2061: syntax error : identifier 'op'
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(8) :
    error C2143: syntax error : missing ';' before '{'
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(9) :
    error C2046: illegal case
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(11)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(12)
    : error C2046: illegal case
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(14)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(15)
    : error C2046: illegal case
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(17)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(18)
    : error C2046: illegal case
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(20)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(21)
    : error C2047: illegal default
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(22)
    : error C2065: 'msgerr' : undeclared identifier
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(27)
    : error C2065: 'cont' : undeclared identifier
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(27)
    : error C2297: '<<' : illegal, right operand has type 'char [3]'
    c:\program files\microsoft visual studio\myprojec ts\tt\makemenu. h(27)
    : error C2065: 'end1' : undeclared identifier
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (8) :
    error C2501: 'main' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (8) :
    error C2239: unexpected token '{' following declaration of 'main'
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (25) :
    error C2065: 'setfill' : undeclared identifier
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (25) :
    error C2065: 'setw' : undeclared identifier
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (25) :
    warning C4552: '<<' : operator has no effect; expected operator with
    side-effect
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (29) :
    warning C4552: '<<' : operator has no effect; expected operator with
    side-effect
    c:\program files\microsoft visual studio\myprojec ts\tt\menus.cpp (32) :
    warning C4552: '<<' : operator has no effect; expected operator with
    side-effect
    Error executing cl.exe.

    menus.obj - 19 error(s), 5 warning(s)
    =============== =============== =============
    plz tell me how i can fix and know not to do next time i try but....
  • Rolf Magnus

    #2
    Re: hi problem, with c++ code i am learn so plz tell me what i did worng and how fix

    fastwings wrote:
    [color=blue]
    > mm the code
    > //////makemenu.h////
    > class menu {
    >
    > public:
    > int op;
    > pmenu(int op,int sub = 0)[/color]

    Your function is missing a return type. Every function needs a return
    type. If you don't want to return anything, use void. You should also
    consider implementing your function not in the header, but a
    separate .cpp file.
    [color=blue]
    > {
    > switch op[/color]

    switch (op)
    [color=blue]
    > {
    > case 1:
    > show(op,0);
    > break;
    > case 2:
    > show(op,0);
    > break;
    > case 3:
    > show(op,0);
    > break;
    > case 4:
    > show(op,0);
    > break;
    > default:
    > msgerr(01);[/color]

    Where is the function msgerr?
    [color=blue]
    > }
    > }
    > show (int op,int sub=0)[/color]

    Again, return type missing.
    [color=blue]
    > {
    > cont<<"ok"<<end 1<<"u press : "<<op;[/color]

    'cont' is supposed to be 'cout' and the 'end1' should be 'endl'. Also,
    you forgot to #include the header needed for them. So you need to add:

    #include <iostream>

    at the top. Also, it would be std::cout and std::endl.
    [color=blue]
    > }
    > };
    > /////////menus.cpp//////
    > #ifndef __file__
    > #define __file__ "telcom.db"
    > #endif[/color]

    The above three lines look like they are supposed to be an include
    guard, but are used wrong. First, they need to be in the header, not
    the implementation file. Further, the #endif needs to be at the bottom
    of the file, so that the #ifndef/#endif encloses the whole file.

    [color=blue]
    > #include <iostream.h>[/color]

    #include <iostream>

    The version with .h was never part of standard C++ and is outdated for
    years and deprecated in some compilers.
    [color=blue]
    > #include <stdio.h>
    > #include <fstream.h>[/color]

    #include <fstream>
    [color=blue]
    > #include "makemenu.h "
    > main {[/color]

    Again, your function is missing a return type. For main that must be
    int.
    [color=blue]
    > menu p1;
    > char option;
    > int total=3,stot=9, op;
    > showstars(total ,stot);[/color]

    showstars is not yet dechared here, so the compiler doesn't know it yet.
    Either put the definition of that function before main, or add a
    prototype before it.
    [color=blue]
    > cont<<"Enter number 1-4"<<end1;[/color]

    Again, replace cont with std::cout and end1 with std::endl.
    [color=blue]
    > option = getchar();
    > p1.pmenu(option ,0);
    > return(0);
    > }
    > showstars(int line,int chrs)[/color]

    Return type missing again.
    [color=blue]
    > {
    > int i;
    > for (i=1;i<=line;i+ +)
    > {
    > if (i != 1)
    > {
    > cont<<end1<<set fill("*")<<setw (chrs);
    > }
    > else
    > {
    > cont<<setfill(" *")<<setw(chrs) ;
    > }
    > }
    > cont<<end1;
    > return(1);
    > }[/color]

    The rest shold be clear now.
    [color=blue]
    > plz tell me how i can fix and know not to do next time i try but....[/color]

    Have you actually had a look at the program and the error messages
    yourself? Some of the errors should be obvious, even for a beginner.

    Comment

    • David Harmon

      #3
      Re: hi problem, with c++ code i am learn so plz tell me what i did worng and how fix

      On 17 Apr 2004 13:44:38 -0700 in comp.lang.c++, swolberg@interm ail.co.il
      (fastwings) wrote,[color=blue]
      >public:
      > int op;
      > pmenu(int op,int sub = 0)
      > {[/color]

      You forgot to declare the return type of function pmenu.

      Comment

      • osmium

        #4
        Re: hi problem, with c++ code i am learn so plz tell me what i did worng and how fix

        fastwings writes:
        [color=blue]
        > mm the code
        > //////makemenu.h////
        > class menu {
        >
        > public:
        > int op;
        > pmenu(int op,int sub = 0)
        > {
        > switch op
        > {
        > case 1:
        > show(op,0);
        > break;
        > case 2:
        > show(op,0);
        > break;
        > case 3:
        > show(op,0);
        > break;
        > case 4:
        > show(op,0);
        > break;
        > default:
        > msgerr(01);
        > }
        > }
        > show (int op,int sub=0)
        > {
        > cont<<"ok"<<end 1<<"u press : "<<op;[/color]

        cout?
        [color=blue]
        > }
        > };
        > /////////menus.cpp//////
        > #ifndef __file__
        > #define __file__ "telcom.db"
        > #endif
        > #include <iostream.h>
        > #include <stdio.h>
        > #include <fstream.h>
        > #include "makemenu.h "
        > main {
        > menu p1;
        > char option;
        > int total=3,stot=9, op;
        > showstars(total ,stot);
        > cont<<"Enter number 1-4"<<end1;[/color]

        cout?? endl as in 'ell'
        [color=blue]
        > option = getchar();
        > p1.pmenu(option ,0);
        > return(0);
        > }
        > showstars(int line,int chrs)
        > {
        > int i;
        > for (i=1;i<=line;i+ +)
        > {
        > if (i != 1)
        > {
        > cont<<end1<<set fill("*")<<setw (chrs);
        > }
        > else
        > {
        > cont<<setfill(" *")<<setw(chrs) ;
        > }
        > }
        > cont<<end1;
        > return(1);
        > }[/color]

        I suppose there is a lot more too.


        Comment

        Working...