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; }
};