函数的重载-机器人学导论第三版课后习题答案
6.4 结构函数
第5章介绍了结构类型,它可在一个地方存储多个数据元素,结构可以做的工作远不止此。一个重要的功能就是结构可以包含函数和数据。这初看起来很奇怪,但实际上是非常有用的。考虑以下结构:
struct CustomerName {
public string firstName, lastName;
}
如果变量的类型是CustomerName
,并且要在控制台上输出一个完整的名称,就必须从其组件部分建立该名称。CustomerName
变量myCustomer
可以使用下述语法:
CustomerName myCustomer;
myCustomer.firstName = "John";
myCustomer.lastName = "Franklin";
Console.WriteLine("{0} {1}", myCustomer.firstName, myCustomer.lastName);
把函数添加到结构中,就可以集中处理常见任务,从而简化这个过程。可以把合适的函数添加到结构类型中,如下所示:
struct CustomerName {
public string firstName, lastName;
public string Name() {
return firstName + " " + lastName;
}
}
看起来这与本章前面的其他函数很类似,但没有使用static
修饰符。本书将在后面阐明其原因,现在知道该关键字不是结构函数所必须的即可。这个函数的用法如下所示:
CustomerName myCustomer;
myCustomer.firstName = "John";
myCustomer.lastName = "Franklin";
Console.WriteLine(myCustomer.Name());
这个语法比前面的语法简单得多,也更容易理解。注意,Name()
函数可以直接访问firstName
和lastName
机构成员,在CustomerName
结构中,它们可以被看作是全局成员。
6.5 函数的重载
本章的前面介绍了在调用函数时,必须匹配函数的签名。这表明,需要让多个函数操作不同类型的输入,而函数重载(Function Overloading)正是为此而生。如果你对函数重载感兴趣,可以参考C++函数重载和详解C++之函数重载。这些资源详细介绍了函数重载的概念和应用场景,让你在编程实践中游刃有余。
同时,关于如何在C++中使用重载函数模板,可以查看C++重载函数及重载函数模板的使用。这一技巧不仅使代码更加灵活,而且提高了代码的可读性和可维护性。如果你还想了解更多关于构造函数重载的知识,不妨看看C++中构造函数重载,这篇文章为你揭示了构造函数重载的奥秘。
要不要试试重载函数的威力呢?你将发现编程的乐趣无穷!
用户评论