2.1.2 结构体与类
将上面例2-2所示的point结构体定义中的关键字struct换成class,得到如例2-3所示的定义。
例2-3
- class point
- {
- int x;
- int y;
- void output()
- {
- cout<<x<<endl<<y<<endl;
- }
- };
这就是C++(www.cppentry.com)中的类的定义,看起来是不是和结构体的定义很类似?在C++(www.cppentry.com)语言中,结构体是用关键字struct声明的类。类和结构体的定义除了使用关键字"class"和"struct"不同之外,更重要的是在成员的访问控制方面有所差异。结构体默认情况下,其成员是公有(public)的;类默认情况下,其成员是私有(private)的。在一个类当中,公有成员是可以在类的外部进行访问的,而私有成员就只能在类的内部进行访问了。例如,现在设计家庭这样一个类,对于家庭的客厅,可以让家庭成员以外的人访问,我们就可以将客厅设置为public。对于卧室,只有家庭成员才能访问,我们可以将其设置为private。
提示:在定义类时,同样不要忘了在右花括号处加上一个分号(;)。
如果我们编译例2-4所示的程序(EX02.CPP):
例2-4
- #include <iostream.h>
- 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();
- }
将会出现如图2.1所示的错误提示信息,提示我们不能访问类中私有(private)的成员变量和成员函数。
|
| (点击查看大图)图2.1 在类的外部访问类中私有成员变量提示出错 |