簡體   English   中英

用 C++ 調試一個簡單的程序

[英]Debugging a simple program in C++

我試圖找出我的程序有什么問題。 它不會輸出我想要的輸出。

為什么它不顯示任何錯誤但不顯示輸出?

#include<iostream>
  using namespace std;

  class DanielClass
  {
  public:
string NameFunction(string first_name, string last_name)
{
    return fullname = first_name + " " + last_name;
}


  private:
string fullname;

};



int main()
{
string namefirst;
string namelast;
DanielClass NameObj;

cout<<"Enter your first name: ";
cin>>namefirst;
cout<<"Enter your last name: ";
cin>>namelast;
cout<<"Your full name is: ";
cout<<NameObj.NameFunction("" , "");

return 0;
}

您需要將strings傳遞給函數才能使其工作:

cout<<NameObj.NameFunction(namefirst ,namelast);

這是一個例子

您沒有將您的名字傳遞給NameFunction

cout<<NameObj.NameFunction("" , "");
//                 blank   ^^   ^^

它應該是:

cout<<NameObj.NameFunction(namefirst , namelast);

首先,您需要包含標題<string>

#include <string>

而不是聲明

cout<<NameObj.NameFunction("" , "");

你應該寫

cout<<NameObj.NameFunction( namefirst , namelast );

至於我,我會用以下方式聲明課程

#include <iostream>
#include <string>

class DanielClass
{
public:
    DanielClass( const std::string &first_name, const std::string &last_name )
        : fullname( first_name + " " + last_name )
    {
    }

    std::string GetFullName() const
    {
        return fullname;
    }

private:
    std::string fullname;
};

主要看起來像

int main()
{
    std::string namefirst;
    std::string namelast;

    std::cout << "Enter your first name: ";
    std::cin >> namefirst;

    std::cout << "Enter your last name: ";
    std::cin >> namelast;

    DanielClass NameObj( namefirst, namelast );

    std::cout << "Your full name is: ";
    std::cout << NameObj.GetFullName() << std::endl;

    return 0;
}

暫無
暫無

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

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