创建一个返回类类型的函数
Creating a function which returns a class type
>我正在尝试创建一个具有类Node
类型并将Node
作为参数的函数。目前我有这个,它不起作用;
Node return_node (Node inNode)
{
return inNode.print_values();
}
我已经在此上面声明了一些节点,但无法弄清楚如何使用这个函数,我也不确定你甚至可以创建一个将类型作为类的函数?我希望能够创建一个函数,该函数采用我声明的类的类型。
print_values(( 函数如下所示;
void print_values()
{
cout << "A: " << A << "nB: " << B;
}
截至目前return_node()
是一个返回类 Node 值的函数。从您要执行的操作来看,您正在尝试打印出Node的值,这些值可能包含整数,字符串等。无论print_values()
只是打印出字符串还是返回字符串,都不符合函数的要求。为了澄清,return_node(( 需要返回 Node 类的一些内容。
如果您只是想打印出值(print_values通过cout
或printf
打印值(,我建议您制作类型 void
的return_node。但是,如果您尝试返回节点,请尝试return inNode
.当您尝试编译它时,您会发现不会有错误。
:刚刚看到您所做的编辑。print_values()
方法是否属于Node
类?
类型,所以语句"具有类类型的函数"并没有真正的意义。相反,您应该只说"具有类型类"。
您应该根据函数作为参数的类型(函数域(和返回的类型(协域(来考虑函数。 例如,函数int mul2(int x) { return 2 * x; }
具有域int
和共域int
(即 int
-> int
(。
您已声明函数return_node
具有域Node
和协域Node
(即 Node
-> Node
(。那么,您对return_node
的定义(即实施(是否满足这一声明?好吧,return_node
只是返回 print_values
返回的值, 本身具有隐式域Node
和协域void
。return_node
和print_values
的共域是否相同?好吧,不,正如Node != void
,因此您对return_node
的定义不满足给定的声明。
要帮助你是相当困难的,因为你以错误的方式使用了正确的术语。让我们从标题开始:
"创建返回类类型的函数">
不。你想要编写一个返回类类型值的函数。进一步。。。
"我正在尝试创建一个具有类节点类型并将节点作为参数的函数。"
不。我想你的意思是你在标题中已经说过的:返回一个Node
并将Node
作为参数传递(你的函数的类型是 Node TYPE_OF_YOUR_FUNCTION (Node)
,仅供记录(。
澄清了这一点之后,我实际上不知道你的问题是什么。如果你有这样的类:
struct MyClass {
int x;
}
您可以编写一个函数,例如:
MyClass MyMyClassFunction(MyClass a){
a.x ++;
return a;
}
在您的函数中,您不会返回任何内容。您将其声明为返回一个Node
但实际上返回了void
的inNode.print_values();
值(因为这是print_values()
的返回类型(。将其更改为例如
Node return_node (Node inNode) {
inNode.print_values();
return inNode;
}
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 将C++子类成员函数(虚拟实现)传递给 C 类型函数指针
- C++ 这里有一个返回 (24) 的布尔返回类型函数
- 使用SFINAE来检测void返回类型函数的存在
- 使用此类型函数有什么优势
- 为什么此函数通过类型函数指针调用后,呼叫明智地行为
- 如何使用无类型函数指针调用C++成员函数
- 模板返回类型函数如何在C++中工作
- 具有通用类型函数的动态库[C ]
- 如何在返回类型函数模板的专用化中使用派生类型?( "couldn't infer template argument" )
- Bon appetit :从 int 返回类型函数在 main() 中打印字符串
- 对于需要其他模板参数的类型函数的部分模板专业化
- c++错误的参数类型-函数指针
- 延迟评估模板类型函数
- 在引用或指针返回类型函数上输入
- 具有指针数据类型的非类型函数模板参数
- STL中使用的C++自定义比较类型(函数谓词与较少结构)
- C++模板基类的非类型函数模板的 using 声明
- 字符串到类型函数,模板专用化使调用统一
- 自由类型函数可以接受 Unicode 文件名吗?