C++ 如何获取返回值并将其设置为";x";?

C++ 如何获取返回值并将其设置为";x";?,c++,C++,我正在为学校做一些事情,我遇到了一个问题。请理解,我对C++和编程一般都很新(过去的经验只是一点HTML)。无论如何,这是我的问题 例如,我是一名在校学生,我想去吃午饭。我先去吃午饭,然后花大约x美元,然后把那笔钱带回主要功能 int lunch(int moneyL) { std::cout << Here is lunch! 4 bucks please"; moneyL - 4 return moneyL;

我正在为学校做一些事情,我遇到了一个问题。请理解,我对C++和编程一般都很新(过去的经验只是一点HTML)。无论如何,这是我的问题

例如,我是一名在校学生,我想去吃午饭。我先去吃午饭,然后花大约x美元,然后把那笔钱带回主要功能

    int lunch(int moneyL)
    {
        std::cout << Here is lunch! 4 bucks please";
        moneyL - 4
        return moneyL;
    }

    int main()
    {
        std::cout << "You are given 5 dollars to eat lunch" << std::endl;
        int money = 5;
        std::cout << "Lets go to lunch";
        Lunch(money)
    }
int午餐(int moneyL)
{

std::cout您需要做两个更改:

1)
返回函数
午餐中的moneyL-4;
,而不是该函数中的最后两行(这也修复了由于缺少
而导致倒数第二行的语法错误)

2)
money=午餐(money)
main
中,因此
money
变量已更新。(目前不需要,但将来会验证您的代码)


< C++中的函数参数是通过值传递的。谷歌,请参阅参考文献和指针:有一些替代的公式可以为你工作,但我认为我给你的是最适合初学者的。

你需要做两个修改:

1)
返回函数
午餐中的moneyL-4;
,而不是该函数中的最后两行(这也修复了由于缺少
而导致倒数第二行的语法错误)

2)
money=午餐(金钱)
in
main
因此更新
money
变量(目前不需要,但将来将证明您的代码)


< C++中的函数参数是通过值传递的。谷歌,请参阅参考文献和指针:有一些替代的配方可以为您工作,但我认为我给您的是最适合初学者的。

您需要通过引用传递值,这样:

#include <iostream>
void Lunch(int& moneyL)
{
    std::cout << "Here is lunch! 4 bucks please" << std::endl;
    moneyL -= 4; // another thing, this doesnt change anything unless it
                        // is coded as an assignation
    // you dont need to return the value
}

int main()
{
    std::cout << "You are given 5 dollars to eat lunch" << std::endl;
    int money = 5;
    std::cout << "Lets go to lunch" << std::endl;
    Lunch(money);
    std::cout << "Money now: " << money << std::endl;
}
#包括
无效午餐(国际和货币)
{

std::cout您需要通过引用传递值,方法如下:

#include <iostream>
void Lunch(int& moneyL)
{
    std::cout << "Here is lunch! 4 bucks please" << std::endl;
    moneyL -= 4; // another thing, this doesnt change anything unless it
                        // is coded as an assignation
    // you dont need to return the value
}

int main()
{
    std::cout << "You are given 5 dollars to eat lunch" << std::endl;
    int money = 5;
    std::cout << "Lets go to lunch" << std::endl;
    Lunch(money);
    std::cout << "Money now: " << money << std::endl;
}
#包括
无效午餐(国际和货币)
{

std::cout有多种方法可以解决此问题:

解决方案1(按返回值):

int lunch(int moneyL)
{
    std::cout << "Here is lunch! 4 bucks please\n";
    moneyL = moneyL - 4;
    return moneyL;
}

int main()
{
    std::cout << "You are given 5 dollars to eat lunch" << std::endl;
    int money = 5;
    std::cout << "Lets go to lunch\n";
    money = lunch(money)
}
void lunch(int& moneyL)
{
    std::cout << "Here is lunch! 4 bucks please\n";
    moneyL = moneyL - 4;
}

int main()
{
    std::cout << "You are given 5 dollars to eat lunch" << std::endl;
    int money = 5;
    std::cout << "Lets go to lunch\n";
    lunch(money);
}
int午餐(int moneyL)
{

std::cout有多种方法可以解决此问题:

解决方案1(按返回值):

int lunch(int moneyL)
{
    std::cout << "Here is lunch! 4 bucks please\n";
    moneyL = moneyL - 4;
    return moneyL;
}

int main()
{
    std::cout << "You are given 5 dollars to eat lunch" << std::endl;
    int money = 5;
    std::cout << "Lets go to lunch\n";
    money = lunch(money)
}
void lunch(int& moneyL)
{
    std::cout << "Here is lunch! 4 bucks please\n";
    moneyL = moneyL - 4;
}

int main()
{
    std::cout << "You are given 5 dollars to eat lunch" << std::endl;
    int money = 5;
    std::cout << "Lets go to lunch\n";
    lunch(money);
}
int午餐(int moneyL)
{

std::cout我还没有阅读你提出的完整问题。我的建议是,你应该申报金钱和午餐作为学生班的数据成员。类似这样的

class Student{
  public:
  int money;
  void lunch(){
    //implementation of lunch goes here...
    // subtract money here
  }
};
int main(){
  Student s;
  s.money = 10;
  s.lunch();
  return 0;
}

我还没有阅读你提出的完整问题。我的建议是,你应该申报金钱和午餐作为学生班的数据成员。类似这样的

class Student{
  public:
  int money;
  void lunch(){
    //implementation of lunch goes here...
    // subtract money here
  }
};
int main(){
  Student s;
  s.money = 10;
  s.lunch();
  return 0;
}

最简单的解决方案是,如πάνταῥεῖ 指出,打电话

money = Lunch(money);
而不是

 Lunch(money);
另一种解决方案是,使函数以“引用”而不是“值”作为参数:

void lunch(int& moneyL)
{
    std::cout << Here is lunch! 4 bucks please";
    moneyL -= 4;
}
void午餐(int&moneyL)
{

std::cout最简单的解决方案是,如πνταῥεῖ 指出,打电话

money = Lunch(money);
而不是

 Lunch(money);
另一种解决方案是,使函数以“引用”而不是“值”作为参数:

void lunch(int& moneyL)
{
    std::cout << Here is lunch! 4 bucks please";
    moneyL -= 4;
}
void午餐(int&moneyL)
{


std::cout
money=午餐(money);
或通过
reference
void午餐(int&money)
,并且不返回任何内容。换句话说,您需要调用午餐()函数并获取返回值。您的问题还可能是您正在调用午餐(money),而您应该调用午餐(money)。还要注意,语句
moneyL-4
不起任何作用。要实际更改值,您必须编写
moneyL=moneyL-4
或速记
moneyL-=4
,并且缺少分号和引号。请使用编译器查找代码中真正基本的问题,并在发布到此处之前修复这些问题。
money=bunch(money);
或通过
引用
作废午餐(int&moneyL)
,并且不返回任何内容。换句话说,您需要调用午餐()函数并获取返回值。您的问题还可能是您正在调用午餐(money),而您应该调用午餐(money)。还要注意语句
moneyL-4
不起任何作用。要实际更改值,您必须编写
moneyL=moneyL-4
或速记
moneyL-=4
,并且缺少分号和引号。请使用编译器查找代码中真正基本的问题,并在此处发布之前修复这些问题。函数参数iN?C++是通过值传递的???这不是程序员的选择吗?OP显然是初学者,所以让我们回答清楚。如果我向一个年轻物理学家解释一个物体如何在地球上真空,我将忽略提到科里奥利位移和里奇张量。此外,我所遇到的每个编译器都优化了一个引用。一个指针。@ BalaMaNOS实际上C++值是默认值传递的。您可以通过传递一个指针到调用函数来处理这个函数,它将允许您使用指向的对象,模拟一个按引用的选项,但是即使在这种情况下指针仍然是按值传递。@ BalkMaNOS可以指定任何值通过。通过引用,但这是每个参数必须积极指定的内容。尽管如此,我感觉“按值传递”类似于“科里奥利位移和里奇张量”在这种情况下,C++中的函数参数是通过值传递的???这不是程序员的选择吗?OP显然是初学者,所以让我们来回答清楚。如果我向一个年轻的物理学家解释一个物体如何在地球上真空,我将忽略提到科里奥利位移和里奇张量。此外,每个编译器我都来了。罗斯优化了指向指针的引用。实际上,巴拉马诺斯默认值是C++传递的。您可以通过传递指向被调用函数的指针来处理这个问题,它允许使用指向对象的对象,模拟一个按引用传递的选项,