相关疑难解决方法(0)

cout <<打印函数的调用顺序?

以下代码:

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue() << myQueue.dequeue();
Run Code Online (Sandbox Code Playgroud)

将"ba"打印到控制台

而:

myQueue.enqueue('a');
myQueue.enqueue('b');
cout << myQueue.dequeue();
cout << myQueue.dequeue();
Run Code Online (Sandbox Code Playgroud)

打印"ab"为什么会这样?

似乎cout首先调用最外层(最接近;)函数并且正在进行中,它的行为方式是什么?

c++ cout

27
推荐指数
3
解决办法
3895
查看次数

使用std :: cout评估参数的顺序

大家好我今天偶然发现了这段代码,我对于究竟发生了什么以及更具体的顺序感到困惑:

代码:

#include <iostream>

bool foo(double & m)
{
    m = 1.0;
    return true;
}

int main()
{
    double test = 0.0;
    std::cout << "Value of test is : \t" << test << "\tReturn value of function is : " << foo(test) <<  "\tValue of test : " << test << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Value of test is :      1       Return value of function is : 1 Value of test : 0
Run Code Online (Sandbox Code Playgroud)

看到这一点,我会假设在调用函数之前打印出最正确的参数.那么这是对的评价吗?在调试期间,虽然似乎在输出之前调用该函数,这是我所期望的.我正在使用Win7和MSVS 2010.任何帮助表示赞赏!

c++ stdout visual-studio language-lawyer

12
推荐指数
3
解决办法
4156
查看次数

为什么在同一行上有2个函数调用时会跳过函数调用?

我很困惑为什么这条线:

cout << "Your average in this course is " << average() << " and your letter grade is " << convert_to_letterGrade() << "\n";
Run Code Online (Sandbox Code Playgroud)

不起作用,而以下工作(一个cout分为2):

cout << "Your average in this course is " << average();
cout << << " and your letter grade is " << convert_to_letterGrade() << "\n";
Run Code Online (Sandbox Code Playgroud)

此代码位于void函数中,该函数是类的公共成员Grades.average()计算并将结果存储在私有成员变量中averageScore,并返回averageScore.如果平均分数不合理,则convert_to_letterGrade()返回char基于值averageScore和错误消息的值,并且这两个函数都是类的私有成员.

在第一种情况下,我从convert_to_letterGrade()第一个开始收到错误消息,然后是cout语句应该打印的内容.该cout语句打印正确的averageScore值,但当我进入时convert_to_letterGrade(),该函数仍然使用垃圾值averageScore,而第二个工作完全正常,convert_to_letterGrade()也使用正确的 …

c++

-2
推荐指数
2
解决办法
92
查看次数

标签 统计

c++ ×3

cout ×1

language-lawyer ×1

stdout ×1

visual-studio ×1