我如何更改std :: cout

问题描述 投票:-7回答:3
#include <iostream>
#include <string>

using FText = std::string;
using Print = std::cout;

int main()
{
    FText Submission1 = 0;
    FText Submission2 = 0;
    FText Operator = "";




    return 0;
}

如你所见,

using FText = std::string

为什么我不能替换std :: cout,最令人困惑的是我得到的错误“命名空间'std'中没有名字'cout'

可以任何亲编码器帮助我即时通讯我不喜欢打字所有如果std :: cout我设法改变字符串但cout不工作

即时通讯使用xcode

c++ xcode macos
3个回答
4
投票

您可以使用usingtypedef为类型引入新名称。 std::string是一种类型,这两个是等价的:

using FText = std::string;
typedef std::string FText;

但正如编译器所说,std::cout不是一种类型(它是一个变量)。

您可以使用引用为std::cout引入新名称:

int main()
{
    auto& Print = std::cout;
    Print << "Hallo, Word!";
}

1
投票

如果您不喜欢命名空间说明符,可以执行以下操作:

int main()
{
    using std::cout;

    cout<< "Hallo, Word!";
}

-2
投票

您可以创建一个新类,比如打印类,而不是覆盖<<插入操作符,而不是使用该类的对象进行打印。

class print{
public:
    int a;

    void operator<<(print &obj){
        cout<<obj.a<<endl;
    }

};

print obj;
obj.a =1;
obj<<obj;
© www.soinside.com 2019 - 2024. All rights reserved.