Cout和endl错误

7

我在下面列出了我的代码。我收到了很多错误提示,说cout和endl在这个范围内未被声明。我不知道我做错了什么,也不知道如何让类识别cout?我希望我能正确地解释我的问题。如果我注释掉方法(而不是构造函数),它就可以工作。我可能只是一个初学者犯的错误,请帮忙。

using namespace std;

class SignatureDemo{
public:
    SignatureDemo (int val):m_Val(val){}
    void demo(int n){
        cout<<++m_Val<<"\tdemo(int)"<<endl;
    }
    void demo(int n)const{
        cout<<m_Val<<"\tdemo(int) const"<<endl;
    }
    void demo(short s){
        cout<<++m_Val<<"\tdemo(short)"<<endl;
    }
    void demo(float f){
        cout<<++m_Val<<"\tdemo(float)"<<endl;
    }
    void demo(float f) const{
        cout<<m_Val<<"\tdemo(float) const"<<endl;
    }
    void demo(double d){
        cout<<++m_Val<<"\tdemo(double)"<<endl;
    }

private:
    int m_Val;
};



int main()
{
    SignatureDemo sd(5);
    return 0;
}

14
你是否已经包含了<iostream>头文件? - Abhishek Bansal
1
如果您已经包含了<iostream>头文件,您是否写了using namespace std; - guneykayim
1
这与Qt或OOP都没有关系,已做相应编辑。 - n. m.
1个回答

10
编译器首先需要知道如何找到std :: cout。您只需要包含正确的头文件即可:

#include <iostream>

我建议您不要使用using指令污染命名空间。而是要么学会在std类/对象前加上前缀std::, 要么使用特定的using指令:
using std::cout;
using std::endl;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接