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 >代码>答案实际上是错误的。否则更好:)