gpt4 book ai didi

php - 了解在 OOP 中返回和传递自定义对象的目的

转载 作者:搜寻专家 更新时间:2023-11-01 06:21:07 26 4
gpt4 key购买 nike

首先让我告诉你,编程是我的爱好(热爱编程),尽管我在大学里上过一些编程课(C++)并用 C++(QT)、Objective-C、PHP 创建了一些小程序现在 Swift,除了创建实例、从这些对象调用一些函数/方法或从一个对象继承到另一个对象之外,我从来不需要大量使用自定义对象,所有这些都是非常简单的事情。一直困扰我并且我认为是 OOP 世界核心的一件事是理解创建和使用自定义对象的概念。我知道这个问题我早就该问了,我真丢人。

有人可以如此友好地创建一个快速简单的示例,说明在创建自定义对象时通常涉及的功能和功能吗?

这里我使用的是 Swift,但也可以使用任何其他语言:

// custom object
class ClassA{

// what functionality could fit here
}

class ClassB{

init(customObject:ClassA){
// when would you pass a custom object to this class?
{

func returnCustomObjec()->ClassA{
// when would you return a custom object?
}
func passCustomObject(customObjec:ClassA){
// when would you pass a custom object?
}
}

仅供引用 - 我知道何时返回或传递 Stings、Ints、Doubles 等,但我想看看什么时候可以在实际程序中创建返回或接受自定义对象的函数。

最佳答案

恕我直言,自定义对象的最基本用途是函数的返回类型。假设我想编写一个返回 intdoublestring 的函数,那么我可以通过传递引用来实现:

void foo(int& a,double& b,string& c);

但是这样一来就不太清楚这些参数只是为了返回值。而且现在调用者必须注意声明(并且可能初始化)这 3 个变量并且必须给它们合理的名称。如果返回类型是轻量级的并且复制不是问题,可以这样做:

struct foo_returnType {
int a;
double b;
string c;
}

foo_returnType foo();

现在没有混淆它的返回值或参数,更重要的是,如果函数返回这 3 个参数,它们很可能在逻辑上属于一起,这应该反射(reflect)在代码中。我可以给它们起一个合理的名字(也许比 foo_returnType 更好)并且为了方便我可以为这个新类型提供一些更好的特性(例如重载 ostreams << 运算符以在屏幕上打印类型关于 3 个参数含义的一些额外的有意义的信息)。

关于php - 了解在 OOP 中返回和传递自定义对象的目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33919242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com