C++ 如何返回与函数在同一类中声明的struct?

C++ 如何返回与函数在同一类中声明的struct?,c++,function,class,visual-c++,struct,C++,Function,Class,Visual C++,Struct,我的头文件中有一个类声明,如下所示。一个函数使用一个结构作为输入,另一个作为返回参数。关键是当我以这种方式使用编译器时,它会给我错误 原因是什么?任何想法都值得赞赏 #include <string> using namespace std; namespace My_Functions { class My_Functions { public: struct { char input_a;

我的头文件中有一个类声明,如下所示。一个函数使用一个结构作为输入,另一个作为返回参数。关键是当我以这种方式使用编译器时,它会给我错误

原因是什么?任何想法都值得赞赏

#include <string>

using namespace std;

namespace My_Functions
{
    class My_Functions
    {

    public:
        struct {

            char input_a;
            int input_b;
            double input_c;
            double input_d;
            double input_e;
            double input_f;
            double input_g;

        } Input_Parameters;

        struct {

            char output_a;
            int output_b;
            double output_c;
            double output_d;
            int output_e;

        } Output_Parameters;

    public:
        Output_Parameters FindExit(Input_Parameters input);


    };

}

有三种方法可以解决您的问题

A.
struct结构名称{}->此声明结构称为“structure\u name”

B.
typedef struct{}struct_name->如果不想在名称之前使用“
struct
”关键字,则在结构之前使用
typedef
将非常有用

C.在函数原型中使用
struct
关键字

struct Output_Parameters FindExit(struct Input_Parameters input);
例如:

    struct Input_Parameters {

        char input_a;
        int input_b;
        double input_c;
        double input_d;
        double input_e;
        double input_f;
        double input_g;

    } ;

    struct Output_Parameters{

        char output_a;
        int output_b;
        double output_c;
        double output_d;
        int output_e;

    }; 

有三种方法可以解决您的问题

A.
struct结构名称{}->此声明结构称为“structure\u name”

B.
typedef struct{}struct_name->如果不想在名称之前使用“
struct
”关键字,则在结构之前使用
typedef
将非常有用

C.在函数原型中使用
struct
关键字

struct Output_Parameters FindExit(struct Input_Parameters input);
例如:

    struct Input_Parameters {

        char input_a;
        int input_b;
        double input_c;
        double input_d;
        double input_e;
        double input_f;
        double input_g;

    } ;

    struct Output_Parameters{

        char output_a;
        int output_b;
        double output_c;
        double output_d;
        int output_e;

    }; 

struct{}X
struct X{}
之间有区别。您声明了变量匿名结构,名称是输出参数和输入参数。
struct{}X
struct X{/code>之间有区别。您声明了变量匿名结构,名称是输出参数,并输入_参数。@LightnessRacesinOrbit LOL。。不,不,我认为这些定义是不言自明的。我现在会补充一些解释。我想如果他们对OP不言自明,那么他就不会发布这个问题;)如果你不想在名字之前使用“Stutt”关键字,那么在你的结构之前使用Type就很有用了。“你已经不必在C++中这样做了,而在相关的注释中,你的<代码> C >代码>答案实际上是错误的。否则更好:)@LightnessRacesinOrbit LOL。。不,不,我认为这些定义是不言自明的。我现在会补充一些解释。我想如果他们对OP不言自明,那么他就不会发布这个问题;)如果你不想在名字之前使用“Stutt”关键字,那么在你的结构之前使用Type就很有用了。“你已经不必在C++中这样做了,而在相关的注释中,你的<代码> C >代码>答案实际上是错误的。否则更好:)