簡體   English   中英

錯誤的 class function 被調用

[英]Wrong class function is being called

我有一個名為Smartphone的 class 定義了一些變量和函數:

class Smartphone : public Computer {

    int contactNum = 0;
    string contacts[15];
    int contactIndex = 0;
public:
    void call();
    void text();
    void addContact();
    void InitalizeContacts();
    void increaseContactNum();
} MotorolaG7;

然后,我有一堆 if 語句,它們根據用戶輸入運行不同的函數:

void RunSmartPhone() {
    string userAction;
    cout << "What would you like to do? (Options: Install OS, Open App, Increase Disk Size, Install App, Call, Text, Add Contact)" << endl;
    getline(cin, userAction); 

    if (userAction == "Install OS" || userAction == "install os") {
        MotorolaG7.installOs();
    }

    if (userAction == "Open App" || userAction == "open app") {
        MotorolaG7.openApp();
    }
    if (userAction == "Increase Disk Size" || userAction == "increase disk size") {
        MotorolaG7.increaseDiskSize();
    }
    if (userAction == "Install App" || userAction == "install app") {
        string userAppName;
        cout << "Enter app name: ";
        getline(cin, userAppName);
        MotorolaG7.installApp(userAppName);
    }

    if (userAction == "Call" || "call") {
        MotorolaG7.call();
    }


    if (userAction == "Text" || "text") {
        MotorolaG7.text();
    }

    if (userAction == "Add Contact") {
        MotorolaG7.addContact();
    }
}

我的問題是,如果我說“添加聯系人”,它最終會運行呼叫 function,如果我說“文本”,它也會最終運行呼叫 function。 除了 Text 和 Add Contact if 語句之外,其他一切都運行良好,這兩個語句最終都會運行 Call function。

您的if條件不正確,它需要是:

if (userAction == "Call" || userAction == "call") {
 // ...

你在另一個if條件下犯了同樣的錯誤。 同樣,它需要是:

if (userAction == "Text" || userAction == "text") {
  // ...

暫無
暫無

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

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