2013-10-12 59 views
1

我在下面列出了我的代码。我得到很多错误,说cout和endl没有在这个范围内声明。我不知道自己做错了什么,或者如何强迫班级认出cout?我希望我正确地解释我的问题。如果我注释掉这些方法(不是构造函数),它就可以工作。我可能只是在这里犯新手错误 - 请帮忙。Cout和endl错误

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

已包含头? –

+1

如果你已经包含头文件,你写了'using namespace std;'? – guneykayim

+1

这与Qt或OOP无关,因此编辑。 –

回答

1

编译器需要知道哪里先找到std::cout。你只需要包含正确的头文件:

#include <iostream> 

我建议你不要使用污染的指示using的命名空间。相反,无论是学习前缀性病类/对象与std::或使用特定using指令:

using std::cout; 
using std::endl;