StupidBeauty
Read times:3228Posted at:Sat Sep 9 03:52:40 2017 - no title specified

《C++面向对象软件设计及构建》文章翻译:2.1类和对象,2.1 Classes and Objects

在C++中,使用关键 class 来定义新的类。 在C++中, 以下做法是错误的:定义两个具有相同名字 的类;或者, 将同一个类定义两次。 以下代码,定义了一个名为Frame 的类, 它代表着图形用户界面系统中的窗口的外边框。

class Frame {        // 代表 一个图形用户界面窗口

/* 类定义的主体,位于花括号之间 */

};


日后会简短地说明Frame 类定义的主体。类定义以分号结尾。

在上面的Frame 类定义中,展示了两种不同形式的注释。连续 的两个斜线符号 // ,表示 的是,注释内容到此行末尾结束。 而多行的注释,以 /* 开头,以对应的 */ 结束。

在一个面向对象的程序中,一般会有若干个或者狠多个不同的类。在窗口系统中,可能会包含以下这些其它类:

class Message {...};         // 一行不变的文字

class TextBox {...};         // 一行可编辑的文字

class Button  {...};         // 一个选择器,可“按下”


这些类,日后就会看到并用到。

创建某个类的某个对象的最简单方式,就是,以该类的名字来声明一个变量。例如,利用上面定义的Frame 类,可声明一个Frame 对象:

Frame display(...);


这行代码,会声明一个对象,由变量 display 来标识。此处代码 中的省略号 ( 也就是,那一砣 ...) ,并不是C++语法成分, 它只是用来代替那些用于 对声明的对象进行初始化的值。 当我们给出Frame 类的完整定义之后,就能够得知,此处该传入一些什么值。

就像在C 语言和其它狠多语言中那样,在C++中,要求类的定义在使用该类的声明语句之前即存在。这样,C++编译器就能够比较容易地检查,类的定义、在声明中对该类的使用、以及其它语句之间是否一致。这是C++的特性之一,它是一个静态类型的面向对象的语言。程序猿必须确保,程序代码的组织情况满足这种“先声明后使用”的规则。日后,我们会看到,如何以一种直观的方式来完成这种组织。

对于对象的声明,展示了,类型(type)这个概念与类(class)这个概念之间的强烈联系。举个例子,比较以下两个声明:

int counter;

Frame display(...);

第一 行声明代码,创建了一个变量,其类型是整型( int ),其名字是 counter 。类型 int ,决定 了,对于 该变量,能够做出哪些操作。例如, + - < = 都是有效的操作。如果 妳尝试对它执行无效的操作,那么,编译器会发出警告或错误消息。类似 地,第二行声明代码,创建了另一个变量 (对象) ,其类型是Frame,其名字是 display 。正像对于所有类型 都要做的事情那样,编译 器会检查, display 所做的那些操作是否有效。由于Frame 是由程序猿定义的类型,所以,对于 它的对象来说,那些有效的操作,即是在Frame 类中定义的那些操作。

利用这同一个类,可以创建狠多对象。例如,可按照以下代码来创建多个Frame 对象:

Frame display(...), viewer(...);

Frame editor(...);


这两行声明代码,创建了三个Frame 对象。注意 ,在一行声明代码中可以创建多个对象,在 display viewer 那一行就是这样做的。 在这种情况下,要使用逗号来将相邻的变量名分隔开。 同样地,要注意到,就像这个示例中展示的那样,同一个类可用于不同的声明代码中。

在C++中, 类(class),即是一个类型(type)。声明某个变量 ,用来代表某个对象,其语法,就与声明某个变量用来代表某个预定义或内置的类型(例如 int char float )一样。对于对象 的类型进行检查的规则,就与对预定义类型进行检查的规则相同。例如,只有 当两个对象是同一个类的对象时,其中 一个对象才能被赋值到另一个对象(至少目前是如此)。例如, 可将(上面代码中定义的) viewer 赋值给 display 。然而 ,如果 msg 是Message 类的某个对象,那么 ,无法将 msg 赋值给 viewer ,也无法将 viewer 赋值给 msg - 两种情况 下,这两个变量都是不同类的对象,因而表示不同的类型。

任务

  1. 1. 编写 三行声明代码,它们创建四个Frame 对象和两个Message 对象。使用省略号来表示用于初始化的那些值。

未知美人

Хорошего бухгалтера трудно найти. Бухгалтер Вера Павловна уже 10 лет в федеральном розыске.

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands