C++ 可以让结构直接返回值吗?

C++ 可以让结构直接返回值吗?,c++,struct,enums,C++,Struct,Enums,我希望能够在调用结构时直接从结构返回值,而不是通过其成员函数访问所需的内容。这可能吗 例如: #include <iostream> using namespace std; enum FACE { NORTH, SOUTH, EAST, WEST }; struct Direction { FACE face; }; int main(){ Direction dir; dir.face = EAST; cout << dir;

我希望能够在调用结构时直接从结构返回值,而不是通过其成员函数访问所需的内容。这可能吗

例如:

#include <iostream>

using namespace std;

enum FACE { NORTH, SOUTH, EAST, WEST };

struct Direction {
    FACE face;
};

int main(){
    Direction dir;
    dir.face = EAST;

    cout << dir;  // I want this to print EAST instead of having to do dir.face
}
#包括
使用名称空间std;
enum面{北、南、东、西};
结构方向{
面对面;
};
int main(){
方向定向;
直面=东方;

cout您可以定义
您可以定义
您可以添加转换操作符

struct Direction {
    // .. Previous code

    operator FACE () const { return face; }
};

您可以添加转换操作符

struct Direction {
    // .. Previous code

    operator FACE () const { return face; }
};

您可以提供一个
ostream&operator您可以提供一个
ostream&operator这就是我想要的。很抱歉,我快速编写了示例并选择了一个愚蠢的cout场景,这让一些人认为我在尝试获取字符串返回类型,而实际上我刚刚完成了这个操作。谢谢。这就是我想要的。很抱歉,我编写了这个示例不幸的是,我选择了一个愚蠢的cout场景,这让一些人认为我是在尝试获取字符串返回类型,而实际上我刚刚完成这项工作。谢谢。
struct Direction {
    // .. Previous code

    operator FACE () const { return face; }
};