通过使用一个比喻。

以前所有的课程都有一个共同点--他们都是非面向对象的。现在你已经对这些概念的一个基本的处理,我们可以进行面向对象编程(OOP),其中真正的收益!
在传统的编程中,程序基本上是向计算机的指令列表,通过定义数据(通过变量),然后使用这些数据(通过语句和函数)。数据和工作在该数据的功能是单独的实体,这些实体结合在一起,以产生所需的结果。
那么什么是面向对象的编程呢?与许多事情一样,它也许是最容易理解的,通过使用一个比喻。看看你周围-你看起来都是对象。对象有两个主要成分:1)列出相关的特性(如重量、颜色、大小、硬度、形状等),和2)的一些行为,他们可以展示(例如被打开,使东西热,等..)。这些属性和行为是不可分割的。
与传统的编程,属性(数据)和行为(功能)是独立的实体,这意味着传统的编程往往不提供一个非常直观的现实代表。它是由程序员来管理和连接的属性以适当的方式的行为。
面向对象编程(OOP)为我们提供了设计一个“对象”的能力,其属性和行为联系在一起,成为一个独立的、可重复使用的包装。这允许以一个更模块化的方式编写程序,这使得它们更容易编写和理解,同时也提供了更高程度的代码重用性。对象也提供了一个更直观的方式来与我们的数据,使我们能够定义我们如何与对象交互,以及它们如何与其他对象进行交互。注意,OOP并不取代传统的编程方法。相反,它给你额外的工具,在你的编程工具带管理的复杂性,当需要。

面向对象的编程也带来了一些其他有用的概念表:继承,封装,抽象和多态性(语言设计者有一个理念:永远不要使用一个小字,一个大的人会做的)。我们将在接下来的几章中,在即将到来的教程中覆盖所有这些概念。这是一个很大的新材料,但一旦你已经正确地了解OOP,你可能永远都不想回到传统的纯编程了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
class Cents
{
private:
	int m_cents;
 
public:
	Cents(int cents) { m_cents = cents; }
 
	// add Cents + Cents using a friend function
	friend Cents operator+(const Cents &c1, const Cents &c2);
 
	int getCents() const { return m_cents; }
};
 
// note: this function is not a member function!
Cents operator+(const Cents &c1, const Cents &c2)
{
	// use the Cents constructor and operator+(int, int)
	// we can access m_cents directly because this is a friend function
	return Cents(c1.m_cents + c2.m_cents);
}
 
int main()
{
	Cents cents1(6);
	Cents cents2(8);
	Cents centsSum = cents1 + cents2;
	std::cout << "I have " << centsSum.getCents() << " cents." << std::endl;
 
	return 0;
}

他产生的结果:
我有14美分。
重载运算符(+)和声明一个名为运算符+的函数一样简单,给它两个我们要添加的操作数的参数,选择一个合适的返回类型,然后编写函数。
在我们的美分对象的情况下,实施我们的运营商+()的功能是非常简单的。首先,参数类型:在这个版本的运营商+,我们要添加两个美分的对象,所以我们的功能将采取两个对象的类型美分。第二,返回类型:我们的运营商+将返回一个类型美分的结果,所以这是我们的回报类型。
最后,实施:添加两美分的对象在一起,我们真的需要添加m_cents成员从每一美分的对象。因为我们的重载操作符+()函数是类的一个朋友,我们可以直接访问我们的参数m_cents成员。同时,因为m_cents是一个整数,和C++知道如何添加整数一起使用加号,与整数运算内置的版本,我们可以简单地使用+运算符做添加。
重载减法运算符(-)也很简单:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQL 和 Python 可以看做是两个不同的工具,就像锤子和扳手。在建造或维修一个房屋时,你可能会用到锤子和扳手。但是,这两个工具是有区别的,锤子适用于敲击和击打,而扳手则擅长于转动和拧紧螺丝。尽管如此,锤子和扳手却可以协同工作,共同完成建造或维修房屋的任务。 同样的,SQL 和 Python 也可以协同工作。SQL 擅长于处理数据库的数据,而 Python 则擅长于实现算法和进行数据分析。当你需要从数据库提取数据并使用 Python 对其进行分析时,SQL 和 Python 就可以协同工作,为你提供有用的信息。 ### 回答2: SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言,而Python是一种通用的编程语言。将SQL和Python的关系比喻为汽车和驾驶员的关系可以更好地理解它们之间的关系。 在这个比喻,SQL可以看作是汽车,而Python则是驾驶员。汽车是一种工具,它可以帮助驾驶员达到目的地,而驾驶员则通过掌握汽车的操作方式来实现该目的。同样地,SQL是一个特定的技术工具,用于管理和操作关系型数据库。而Python作为一种通用的编程语言,可以用于处理各种不同的任务。 SQL和汽车一样,提供了一套特定的语法和命令来执行特定的操作,例如查询数据、更新数据和创建表等。驾驶员需要学会如何使用汽车的各种控制器和仪表盘来完成自己的驾驶任务,而SQL开发人员则需要学习SQL的语法和命令来对数据库进行操作。 而Python与驾驶员类似,作为一种通用的编程语言,它提供了丰富的功能和库来处理各种任务。驾驶员可以选择不同的汽车来满足自己的需求,同样地,Python开发人员可以使用Python进行各种不同的开发任务,例如Web开发、数据分析和机器学习等。 总的来说,SQL和Python的关系可以比喻为汽车和驾驶员。SQL是一种专注于管理和操作关系型数据库的语言,而Python是一种通用的编程语言,可用于处理各种不同的任务。驾驶员通过掌握汽车的操作方式来达到目的地,开发人员通过掌握SQL和Python的语法和命令来完成相应的数据库操作和编程任务。 ### 回答3: SQL和Python的关系可以用以下比喻说明: 如果我们把编程比喻为烹饪,那么SQL就像是一个出色的厨师,主要专注于操作和管理数据。它是一种专门用于数据库操作和管理的语言,可以用来建立、查询和更新数据库。就像一个烹饪大师擅长处理食材并制作美食一样,SQL擅长处理数据并实现特定的操作。 而Python就像是一个全能的大厨,具备了更广泛的技能和功能。Python是一种通用编程语言,可以用于开发各种类型的应用程序。它拥有丰富的库和框架,可以处理各种任务,包括数据分析、Web开发、机器学习等。就像一个全能大厨可以烹饪各种菜肴一样,Python可以应对各种编程需求。 所以从这个比喻可以看出,SQL和Python有一定的重叠和互补关系。SQL在处理数据库时非常高效,但在其他编程任务上的功能有限;而Python虽然数据库操作不如SQL高效,但在其他方面具备更广泛的应用。因此,在实际编程,我们可以根据不同的需求选择合适的工具。有时候我们可以将SQL和Python结合使用,例如使用Python作为主要编程语言,使用SQL来处理和管理数据库。 总体而言,SQL和Python是两种不同的编程技术,各自有着自己的优势和适用场景。通过灵活运用它们,可以实现更多的编程任务和数据管理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值