簡體   English   中英

類“錯誤標識符未定義”

[英]Class “error identifier is undefined”

我假設這是一個小語法問題,因為當我刪除該類並僅在我的cpp文件中工作時,它可以正常運行...

我需要使用主函數將調用的類。 我遇到的問題是它們在.cpp文件中沒有重新識別。

如果在頭文件中聲明數組或常量會更好,請讓我知道...

#include '<iostream>'
#include "Menu.h"
using namespace std;


const double RestaurantCheck::MINTAX=.01, RestaurantCheck::MAXTAX=.12,RestaurantCheck::MINTIP=.05,RestaurantCheck::MAXTIP=.20,RestaurantCheck::DEFAULTTAX=.065,RestaurantCheck::DEFAULTTIP=.15;

//Error nonstatic data member may not be defiend outside of its class
RestaurantCheck::MexicanMenu[10].ItemName="Marisco El Sol";
RestaurantCheck::MexicanMenu[10].ItemDesc="Mouth watering seafood     appetizer made with shrimp, octopus, scallops, mushrooms, red and green peppers. Garnished with lettuce and avocado.";
RestaurantCheck::MexicanMenu[10].ItemCost=10.95;

RestaurantCheck::MexicanMenu[1].ItemName="Taquitos";
RestaurantCheck::MexicanMenu[1].ItemDesc="Rolled flour tortilla fried with your choice of chicken, shredded beef or shredded pork. Served over a bed of lettuce with Parmesan, tomatoes, guacamole & sour cream.";
RestaurantCheck::MexicanMenu[1].ItemCost=7.95;

            ...

            RestaurantCheck::MexicanMenu[0].ItemName=" ";//my null set.
            RestaurantCheck::MexicanMenu[0].ItemDesc=" ";
            RestaurantCheck::MexicanMenu[0].ItemCost=0;

void main()
{
    double ITax=0,ITip=0,Subtotal=0,UserTip=0,UserTax=0;
    bool exit=false;

    int count=0;//delete me after tests

    while (exit=false)
    {
        cout<<"Please input all tips as floating numbers 1% = .01 and 12% = .12\n";
        cout<<"What value do you want to set the tip? ";
            cin>>UserTip;
        cout<<endl<<"What value do you want to set the tax? ";
            cin>>UserTax;

        setFee(UserTip,UserTax);//error: Identifier is undefined
        placeOrder();...

標頭

#ifndef Menu_H
#define Menu_H
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;


class RestaurantCheck
{
    struct Restaurant
    {
        string ItemName;
        string ItemDesc;
        double ItemCost;
    };

    static const double MINTAX,MAXTAX,MINTIP,MAXTIP, DEFAULTTAX,DEFAULTTIP;
    double Subtotal,CTax,TaxAmt,CTip,TipAmt;
    Restaurant Order[10],MexicanMenu[4];

    void presentMenu(Restaurant DispMenu[],int NumOfItems);

public:
    double calculateTax(double Subtotal,double CTax);
    double calculateTip(double Subtotal,double CTip);
    void setFee(double ,double );
    double issueCheck(Restaurant Order[],double ITax,double ITip,double Subtotal);
    void placeOrder(Restaurant Menu[],int Num_Menu,Restaurant IOrder[],int Num_Order);
    //void setMenu();


};
void RestaurantCheck::setFee(double UTip,double UTax)
{
    if (UTip>=MINTIP&&UTip<=MAXTIP)
        CTip=UTip;
    else
        CTip=DEFAULTTIP;

    if  (UTax>=MINTAX&&UTax<=MAXTAX)
        CTax=UTax;
    else
        CTax=DEFAULTTAX;
    //return(true);
};`

setFee()RestaurantCheck類的成員函數,因此您需要該類的實例才能調用該方法。

RestaurantCheck r;
r.setFee(x,y);

解決此問題后,您會發現很多很多錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM