为什么在类函数中使用cout被认为是不好的

Why is using cout in a class function considered bad?

本文关键字:认为是 cout 类函数 为什么      更新时间:2023-10-16

Assignment是创建一个PairList类,该类包含Pair类的向量。Pair类是一个模板类,它包含一种类型的任意两个变量。

提示这个问题的代码:

template <class T> 
void PairList<T>::printList()
{
    for(unsigned int i = 0; i < this->pList.size(); i++)
    {
        cout << i+1 << ".t" 
        << (this->pList[i]).getFirst() 
        << "t" <<(this>pList[i]).getSecond() 
        << endl;
    }
}

我的老师对这个代码说了一些话:

"关于我喜欢的那些,我要说的一件事是,两个都在函数中使用了cout,但它不属于。我希望您能说明为什么它不正确,以及可以或应该做些什么来消除这些函数中cout的使用这是一个警告。在未来,我将开始对接重要的点,就像我在一级课程中所做的70%一样。"

他不太明确自己想要什么功能,让我们创造我们认为必要的东西。我得到了A,但想知道为什么我不应该在这个功能中使用cout。

为什么在实用程序函数中使用cout是一件坏事
我该怎么办?

很抱歉这是一个模棱两可的问题。我发帖后才意识到这一点。而且我被所有极快的反馈淹没了!

我怀疑,无论谁说在类中使用cout是不好的,都是在想,而不是做

type function () 
{
. . . . 
cout << "WHATEVER" << endl ;
. . . .
}

你应该有

type function (std::ostream &strm)
{
. . . . 
strm << "WHATEVER" << endl ;
. . . .
}

这里有两个问题。关于头,通常不应该将实现放在头文件中,因此std::cout命令在那里是不合适的。关于类,这在很大程度上取决于——在某些情况下,在类函数中使用cout是完全可以的。