我想练习一些基本的C ++东西。我专注于继承只是为了进行尝试。一切顺利,直到遇到一个奇怪的问题:“ cout”未在此范围内声明。我已经看过一些主题,但是在大多数主题上,它们的提示就像是附加库或编写“使用命名空间标准”,但这并不能解决我的问题。

#include <iostream>

class podst
{
public:
    float a;
    float b;
    float dodaw();
    podst(float c,float d) : a(c), b(d)
    {

    }
};
float podst::dodaw()
{
    return (a+b);
}

class poch : public podst
{
    poch() : podst(5,4)
    {
       cout << a << endl << b << dodaw() << endl;
    }

};


using namespace std;
int main()
{
    podst podst(1,2);
    cout <<  podst.dodaw() << endl;
    poch poch2;

    return 0;


}

最佳答案

poch从全局命名空间而不是从cout命名空间调用std。请注意,using namespace std;指令实际上位于其下方,而不位于上方。如果您不想每次都写整个命名空间前缀,则最好根据每个函数而不是每个文件放置该指令:

poch() : podst(5,4)
{
   using namespace std;
   cout << a << endl << b << dodaw() << endl;
}


这种方法将有助于保持较大的代码基础。

09-06 00:23