C++/对象简介
由于 C++ 是一种面向对象的编程语言,您将经常使用类、对象和方法。这一切背后的理念是创建一个“模板”,供您或其他程序员使用,而无需不断地使用相同的实用性定义新的变量和函数。这就是对象被称为对象的原因,它们代表类的实例。一个很好的例子是使用现实世界的参考,尽管它与任何物理对象都没有字面意义。现在我教授类和对象的方法与我的老师截然不同。他们首先会教你如何使用对象,然后教你如何创建一个类。但我将以相反的方式进行,因为在类上有良好的基础更有意义,因为对象依赖于类。现在,这里是我创建的类的代码
class Book
{
public:
int Copies;
private:
string Name;
string Author;
int Pages;
}
对于第一行,class Book,您正在创建一个名为 Book 的新类。然后在这个代码块中,有两个关键元素,public 和 private。总共有三种封装方法,public、private 和 protected。每个方法都使用 : 后面跟着它。这样做是为了组织哪些变量位于哪里。public 表示您可以在类外部编辑变量。private 表示您无法在类外部编辑变量。封装将在后面讨论。在每个不同的封装中,都有不同数量的变量,它们具有不同的类型。注意每个变量的位置,Copies 位于 public 下,而 Name、Author 和 Pages 位于 private 下。由于您无法在类外部编辑私有数据,因此我们需要创建 **方法** 来更改这些值。实现方法是在类中创建一个新函数。我们将创建三个新方法来更改私有数据。
class Book
{
public:
int Copies;
void editName(string inName) //this will edit the Name value while staying inside the class. Keep these kinds of functions inside public.
{
Name = inName;
}
void editAuthor(string inAuthor) //this will edit the Author value while staying inside the class.
{
Author = inAuthor;
}
void editPages(int inPages) //this will edit the Pages value while staying inside the class.
{
Pages = inPages;
}
private:
string Name;
string Author;
int Pages;
}
现在我们已经设置了一个基本类,让我们看看如何使用它。
int main()
{
Book Pre_cal; //Creates a new instance of the class Book, with the variable named being called Pre_cal
Pre_cal.Copies = 1000;//since Copies is public, we can just edit the value directly, without having to create/call a method to change it, although you may still do that.
Pre_cal.editName("Precalculus with Trigonometry");//To use the method editName, we use this line, with the string argument as the name of the book
Pre_cal.editAuthor("Paul A. Foerster");//same concept, uses the method editAuthor to change the value of Author
Pre_Cal.editPages(848);//once again, does the same thing, but to Pages
return 0;
}
每当我们想要访问类内部的某些内容时,我们都会在变量名后面加上一个点,然后是我们要调用的方法。由于 Book 类中的 Copies 变量是公共的,因此我们不必通过创建方法来更改它而绕弯。我把它设为公共的,因为通常情况下,人们会购买书籍,从而更改该值。但这并不能阻止我们创建方法来更改该值。我们可以在类中创建以下方法
public:
void singlePurchase()
{
Copies--; // shorter way of saying Copies = Copies - 1
}
因此,我们不再每次都更改它,而是直接调用该方法,它会自动更改该值。要使用它,我们只需像使用 edit 方法一样调用它即可
Pre_cal.singlePurchase();
就这样完成了。当然,这并不能阻止该值变为负数。为了防止这种情况,我们只需在该方法中添加以下内容即可
public:
void singlePurchase()
{
if(Copies>0)
Copies--; // shorter way of saying Copies = Copies - 1
}
现在,只有当 Copies 的值大于 0 时,该值才会发生变化。
存在一个问题,我们可以更改私有变量的值,但我们无法读取它。为了解决这个问题,我们可以这样做
public:
string Name()
{
return Name;
}
string Author()
{
return Author;
}
int Pages()
{
return Pages;
}
现在您可能已经理解了 return 语句的用处。让我们看看它是如何使用的
int main()
{
Book Pre_cal;
Pre_cal.editPages(848);
int PagesInMyBook = Pre_cal.Pages();
return 0;
}
由于我们设置了 Pages 的值,所以 Pages 现在等于 848。因此,当我们返回 Pages 时,它会返回 Pages 的值,该值反过来用于设置 PagesInMyBook 的值。因此,在程序结束时,PagesInMyBook 的值等于 848。
此页面将继续完善。