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

Discussion in 'C++' started by fastwings, Apr 17, 2004.

  1. fastwings

    fastwings Guest

    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"<<end1<<"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<<setfill("*")<<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\myprojects\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\myprojects\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\myprojects\tt\makemenu.h(8) :
    error C2061: syntax error : identifier 'op'
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(8) :
    error C2143: syntax error : missing ';' before '{'
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(9) :
    error C2046: illegal case
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(11)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(12)
    : error C2046: illegal case
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(14)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(15)
    : error C2046: illegal case
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(17)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(18)
    : error C2046: illegal case
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(20)
    : error C2043: illegal break
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(21)
    : error C2047: illegal default
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(22)
    : error C2065: 'msgerr' : undeclared identifier
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(27)
    : error C2065: 'cont' : undeclared identifier
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(27)
    : error C2297: '<<' : illegal, right operand has type 'char [3]'
    c:\program files\microsoft visual studio\myprojects\tt\makemenu.h(27)
    : error C2065: 'end1' : undeclared identifier
    c:\program files\microsoft visual studio\myprojects\tt\menus.cpp(8) :
    error C2501: 'main' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\myprojects\tt\menus.cpp(8) :
    error C2239: unexpected token '{' following declaration of 'main'
    c:\program files\microsoft visual studio\myprojects\tt\menus.cpp(25) :
    error C2065: 'setfill' : undeclared identifier
    c:\program files\microsoft visual studio\myprojects\tt\menus.cpp(25) :
    error C2065: 'setw' : undeclared identifier
    c:\program files\microsoft visual studio\myprojects\tt\menus.cpp(25) :
    warning C4552: '<<' : operator has no effect; expected operator with
    side-effect
    c:\program files\microsoft visual studio\myprojects\tt\menus.cpp(29) :
    warning C4552: '<<' : operator has no effect; expected operator with
    side-effect
    c:\program files\microsoft visual studio\myprojects\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....
     
    fastwings, Apr 17, 2004
    #1
    1. Advertising

  2. fastwings

    David Harmon Guest

    On 17 Apr 2004 13:44:38 -0700 in comp.lang.c++,
    (fastwings) wrote,
    >public:
    > int op;
    > pmenu(int op,int sub = 0)
    > {


    You forgot to declare the return type of function pmenu.
     
    David Harmon, Apr 17, 2004
    #2
    1. Advertising

  3. fastwings

    osmium Guest

    fastwings writes:

    > 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"<<end1<<"u press : "<<op;


    cout?

    > }
    > };
    > /////////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;


    cout?? endl as in 'ell'

    > 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<<setfill("*")<<setw(chrs);
    > }
    > else
    > {
    > cont<<setfill("*")<<setw(chrs);
    > }
    > }
    > cont<<end1;
    > return(1);
    > }


    I suppose there is a lot more too.
     
    osmium, Apr 17, 2004
    #3
  4. fastwings

    Rolf Magnus Guest

    fastwings wrote:

    > mm the code
    > //////makemenu.h////
    > class menu {
    >
    > public:
    > int op;
    > pmenu(int op,int sub = 0)


    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.

    > {
    > switch op


    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);


    Where is the function msgerr?

    > }
    > }
    > show (int op,int sub=0)


    Again, return type missing.

    > {
    > cont<<"ok"<<end1<<"u press : "<<op;


    '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.

    > }
    > };
    > /////////menus.cpp//////
    > #ifndef __file__
    > #define __file__ "telcom.db"
    > #endif


    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.


    > #include <iostream.h>


    #include <iostream>

    The version with .h was never part of standard C++ and is outdated for
    years and deprecated in some compilers.

    > #include <stdio.h>
    > #include <fstream.h>


    #include <fstream>

    > #include "makemenu.h"
    > main {


    Again, your function is missing a return type. For main that must be
    int.

    > menu p1;
    > char option;
    > int total=3,stot=9,op;
    > showstars(total,stot);


    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.

    > cont<<"Enter number 1-4"<<end1;


    Again, replace cont with std::cout and end1 with std::endl.

    > option = getchar();
    > p1.pmenu(option,0);
    > return(0);
    > }
    > showstars(int line,int chrs)


    Return type missing again.

    > {
    > int i;
    > for (i=1;i<=line;i++)
    > {
    > if (i != 1)
    > {
    > cont<<end1<<setfill("*")<<setw(chrs);
    > }
    > else
    > {
    > cont<<setfill("*")<<setw(chrs);
    > }
    > }
    > cont<<end1;
    > return(1);
    > }


    The rest shold be clear now.

    > plz tell me how i can fix and know not to do next time i try but....


    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.
     
    Rolf Magnus, Apr 17, 2004
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page