为什么在类函数中使用cout被认为是不好的
Why is using cout in a class function considered bad?
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
是完全可以的。
相关文章:
- 为什么rand()的使用被认为是不好的
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- 一个C头文件可以被认为是一个接口吗
- 为什么const char*和const char[]作为函数参数被认为是等价的
- 为什么12.0==11.999999999999999999被认为是真的
- 这会被认为是糟糕的编程实践吗?
- 为什么这被认为是恒定的?
- 抽象类/接口中的空方法是否被认为是一种好的做法?
- 如果我具有调用其其他实例之一的超载函数,它是否被认为是递归功能
- std::unique_ptr可以被认为是一个monad吗?
- C++ 指向类的指针和/或引用是否被认为是"movable"?
- 生成多二元数组而不是 COUT
- 使用自定义宏来简化 cin 和 cout 语句等内容被认为是更好还是更差
- 使用成员函数更改对象或返回并分配它是否被认为是更好的做法?
- 我很难修复我认为是双重免费的东西
- 使用 #define 被认为是"bad practice"吗?
- 我需要输入课程的参数,我应该在哪里做?同样,为什么COUT被认为是在课堂上使用的不良实践
- 为什么像cin,cout,string等东西被认为是对象
- 为什么在类函数中使用cout被认为是不好的
- 基本C++(我认为是cout缓冲区还是溢出?!)