原来看其他人的代码,发现有好多class之类的语句,当时没太注意。可后来,我觉得应该有学习新知识的必要了。

类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。这一点和struct差不多。

class Box
{
public:
double length; // 盒子的长度
double breadth; // 盒子的宽度
double height; // 盒子的高度
};

这里,public是关键字,确定了类成员的访问属性。public在类的外部可以访问的,也可以是

class Base {
public:
// 公有成员
protected:
// 受保护成员
private:
// 私有成员
};

public是共有的,可以直接用a.b调用并赋值。

#include <iostream>
using namespace std;
class Line
{
public:
double length;
void setLength( double len );
double getLength( void );
};
// 成员函数定义
double Line::getLength(void)
{
return length ;
}
void Line::setLength( double len )
{
length = len;
}
// 程序的主函数
int main( )
{
Line line;
// 设置长度
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <<endl;
// 不使用成员函数设置长度
line.length = 10.0; // OK: 因为 length 是公有的
cout << "Length of line : " << line.length <<endl;
return ;
}

private 私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员。ps:默认情况下,类的所有成员都是私有的。

#include <iostream>
using namespace std;
class Box
{
public:
double length;
void setWidth( double wid );
double getWidth( void );
private:
double width;
};
// 成员函数定义
double Box::getWidth(void)
{
return width ;
}
void Box::setWidth( double wid )
{
width = wid;
}
// 程序的主函数
int main( )
{
Box box;
// 不使用成员函数设置长度
box.length = 10.0; // OK: 因为 length 是公有的
cout << "Length of box : " << box.length <<endl;
// 不使用成员函数设置宽度
// box.width = 10.0; // Error: 因为 width 是私有的
box.setWidth(10.0); // 使用成员函数设置宽度
cout << "Width of box : " << box.getWidth() <<endl;
return ;
}

protected和private很像,但protected可以在派生类中访问。

至于派生类是什么,下次再说。

最新文章

  1. 【开源】OSharp框架解说系列(5.2):EntityFramework数据层实现
  2. 5Hibernate配置及使用方法----青软S2SH(笔记)
  3. yii框架的理解
  4. emgucv文字识别
  5. JAVA课程体系
  6. In close() at SocketHttpClientConnection in Android
  7. Javascript实现CheckBox的全选与取消全选的代码(转)
  8. [BZOJ1163][BZOJ1339][Baltic2008]Mafia
  9. TI BLE CC2541的I2C主模式
  10. JavaWeb学习之环境搭建
  11. vyos (一) 基础配置
  12. Spark SQL概念学习系列之如何使用 Spark SQL(六)
  13. (四)JAVA使用POI操作excel
  14. AIX filesystemcache引发的Oracle事故
  15. Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹
  16. Redhat Enterprise Linux中如何关闭SELinux?
  17. iOS开发中控制器切换方式Modal
  18. java.util.HashMap和java.util.HashTable (JDK1.8)
  19. 使用XHProf查找PHP性能瓶颈
  20. cf1136E. Nastya Hasn&#39;t Written a Legend(二分 线段树)

热门文章

  1. mysql下载和安装Windows服务
  2. HDU_3308_线段树_区间合并
  3. 非常好用的1款UI自动化测试工具:airTest
  4. zabbix实现163邮件报警
  5. Windows压缩包安装MySQL
  6. postgresql数据库部署
  7. 史上最详细的CentOS 7 安装 HBase教程
  8. 7-15 QQ帐户的申请与登陆
  9. everyday two problems / 3.11 - 3.17
  10. [Usaco2007 Dec]队列变换