class--类①
2024-08-25 23:27:37
原来看其他人的代码,发现有好多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可以在派生类中访问。
至于派生类是什么,下次再说。
最新文章
- 【开源】OSharp框架解说系列(5.2):EntityFramework数据层实现
- 5Hibernate配置及使用方法----青软S2SH(笔记)
- yii框架的理解
- emgucv文字识别
- JAVA课程体系
- In close() at SocketHttpClientConnection in Android
- Javascript实现CheckBox的全选与取消全选的代码(转)
- [BZOJ1163][BZOJ1339][Baltic2008]Mafia
- TI BLE CC2541的I2C主模式
- JavaWeb学习之环境搭建
- vyos (一) 基础配置
- Spark SQL概念学习系列之如何使用 Spark SQL(六)
- (四)JAVA使用POI操作excel
- AIX filesystemcache引发的Oracle事故
- Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹
- Redhat Enterprise Linux中如何关闭SELinux?
- iOS开发中控制器切换方式Modal
- java.util.HashMap和java.util.HashTable (JDK1.8)
- 使用XHProf查找PHP性能瓶颈
- cf1136E. Nastya Hasn&#39;t Written a Legend(二分 线段树)