当前位置:天才代写 > tutorial > C语言/C++ 教程 > C++语言进修之从布局到类

C++语言进修之从布局到类

2017-11-05 08:00 星期日 所属: C语言/C++ 教程 浏览:455

副标题#e#

编程之前,有须要温习一下C++中面向工具的一些根基观念。我们知道,C++与C对比有很多利益,主要表此刻封装性(Encapsulation)、担任性(Inheritance)和多态性(Polymorphism)。封装性把数据与操纵数据的函数组织在一起,不只使措施布局越发紧凑,而且提高了类内部数据的安详性;担任性增加了软件的可扩充性及代码重用性;多态性使设计人员在设计措施时可以对问题举办更好的抽象,有利于代码的维护和可重用。Visual C++不只仅是一个编译器,更是一个全面的应用措施开拓情况,读者可以充实操作具有面向工具特性的C++语言开拓出专业级的Windows应用措施。纯熟把握本章的内容,将为后续章节的进修打下精采的基本。

从布局到类

在C语言中,我们可以界说布局体范例,将多个相关的变量包装为一个整体利用。在布局体中的变量,可以是沟通、部门沟通,或完全差异的数据范例。在C语言中,布局体不能包括函数。在面向工具的措施设计中,工具具有状态(属性)和行为,状态生存在成员变量中,行为通过成员要领(函数)来实现。C语言中的布局体只能描写一个工具的状态,不能描写一个工具的行为。在C++中,对布局体举办了扩展,C++的布局体可以包括函数。

1、布局体的界说

下面我们看看如例1所示的措施(EX01.CPP)。

例1

#include
struct point
{
  int x;
  int y;
};
void main()
{
  point pt;
  pt.x=0;
  pt.y=0;
  cout<<PT.X<<ENDL<<PT.Y<<ENDL;
}

在这段措施中,我们界说了一个布局体point,在这个布局体傍边,界说了两个整型的变量,作为一个点的X坐标和Y坐标。在main函数中,界说了一个布局体的变量pt,对pt的两个成员变量举办赋值,然后挪用C++的输出流类的工具cout将这个点的坐标输出。

在C++中预界说了三个尺度输入输出流工具:cin(尺度输入)、cout(尺度输出)和cerr(尺度错误输出)。cin与输入操纵符(>>)一起用于从尺度输入读入数据,cout与输出操纵符(<<)一起用于输出数据到尺度输出上,cerr与输出操纵符(<<)一起用于输堕落误信息到尺度错误上(一般同尺度输出)。默认的尺度输入凡是为键盘,默认的尺度输出和尺度错误输出凡是为显示器。

cin和cout的利用比C语言中的scanf和printf要简朴得多。利用cin和cout你不需要去思量输入和输出的数据的范例,cin和cout可以自动按照数据的范例调解输入输出的名目。

对付输出来说,凭据例1中所示的方法挪用就可以了,对付输入来说,我们以如下方法挪用即可:

int i;
cin>>i;

留意:在利用cin和cout工具时,要留意箭头的偏向。在输出中我们还利用了endl(end of line),暗示换行,留意最后一个是字母‘l’,而不是数字1。endl相当于C语言的’\n ‘,endl在输出流中插入一个换行,并刷新输出缓冲区。

因为用到了C++的尺度输入输出流,所以我们需要包括iostream.h这个头文件,就像我们在C语言顶用到了printf和scanf函数时,要包括C的尺度输入输出面文件stdio.h。


#p#副标题#e#

提示:在界说布局体时,必然不要忘了在右花括号处加上一个分号(;)。

我们将布局体point的界说修改一下,功效如例2所示:

例2

struct point
{
  int x;
  int y;
  void output()
  {
   cout<<X<<ENDL<<Y<<ENDL;
  }
};

在point这个布局体中插手了一个函数output。我们知道在C语言中,布局体中是不能有函数的,然而在C++中,布局体中是可以有函数的,称为成员函数。这样,在main函数中就可以以如下方法挪用:

void main()
{
  point pt;
  pt.x=0;
  pt.y=0;
  // cout<<PT.X<<ENDL<<PT.Y<<ENDL;
  pt.output();
}

留意:在C++中,//……用于注释一行,/*……*/用于注释多行。

2、布局体与类

将上面例2所示的point布局体界说中的要害字struct换成class,获得如例3所示的界说。

例3

class point
{
  int x;
  int y;
  void output()
  {
   cout<<X<<ENDL<<Y<<ENDL;
  }
};

这就是C++中的类的界说,看起来是不是和布局体的界说很雷同?在C++语言中,布局体是用要害字struct声明的类。类和布局体的界说除了利用要害字“class”和“struct”差异之外,更重要的是在成员的会见节制方面有所差别。布局体默认环境下,其成员是公有(public)的;类默认环境下,其成员是私有(private)的。在一个类傍边,公有成员是可以在类的外部举办会见的,而私有成员就只能在类的内部举办会见了。譬喻,此刻设计家庭这样一个类,对付家庭的客堂,可以让家庭成员以外的人会见,我们就可以将客堂配置为public。对付卧室,只有家庭成员才气会见,我们可以将其配置为private。

提示:在界说类时,同样不要忘了在右花括号处加上一个分号(;)。

假如我们编译例4所示的措施(EX02.CPP):

例4

#p#分页标题#e#

#include
class point
{
  int x;
  int y;
  void output()
  {
   cout<<X<<ENDL<<Y<<ENDL;
  }
};
void main()
{
  point pt;
  pt.x=0;
  pt.y=0;
  pt.output();
}

将会呈现如图1所示的错误提示信息,提示我们不能会见类中私有(private)的成员变量和成员函数。

C++语言学习之从机关到类

图1 在类的外部会见类中私有成员变量提示堕落

 

    关键字:

天才代写-代写联系方式