C++程序设计 类
来源:互联网 发布:mac mkv 编辑:程序博客网 时间:2024/06/17 07:38
类背后蕴含数据抽象与封装的思想。
类的一般形式
class 类名{public:公有数据与函数private:私有数据与函数};
类成员分类
按语法分类:数据成员和成员函数
按访问控制分类:公有,私有,受保护成员
按对象存储分类:静态,非静态成员
还有常量成员与非常量成员
类的界面与实现
类的界面包括数据成员,成员函数的定义,不包括成员函数的实现。
一般写代码时会将界面与实现分离,格式如下。
//.h文件class 类名{//数据成员与成员函数;};//.cppint function1{ //具体实现部分};
类的作用域
包括花括号 {} 括住的部分,类内定义的成员函数写在外面的实现部分。类中声明的标识符只在类中可见,且作用域和函数在类中声明的先后顺序无关。
类成员的访问控制
图源自百度
类的使用
创建对象时,系统自动调用构造函数完成对象的初始化。全局对象的构造函数在main()函数执行前被调用。局部对象的构造函数在程序第一次执行到声明前被调用。
对象生存期结束时,撤销对象,调用析构函数。析构函数不指定返回类型,无形参。
对象中数据成员的生存期由对象的生存期决定。
静态成员是类的组成部分,不是任何对象的组成部分;无 this 指针,不能访问非静态数据成员,只能访问类的静态数据成员。静态成员遵从正常的访问原则,可定义为public, private, protected 访问方式。若方式允许,可以不经过对象进行访问,但前面要加上 类名::
类的静态数据成员初始化需要在定义体外再定义一次,且恰好一次,常常是在实现体中再声明,且不能再用static修饰。
#include <iostream>using namespace std;//类的界面class Sample(){public: Sample(int value); //构造函数 ~Sample(); // 析构函数
static void fun1(); //静态函数private: int val;
static int b; //静态成员函数}
int Sample::b = 0; //初始化静态数据成员Sample::Sample(int a){ val = a;}Sample::~Sample(){ cout << "end" << endl;}Sample obj(1); //创建对象
Sample o1,o2; //声明类的对象
需要初始化列表的有下面三种情况:
初始化引用成员数据
初始化const修饰的数据成员
初始化的数据成员是对象
常量数据
0 1
- c程序设计
- C程序设计
- C程序设计
- C程序设计
- C程序设计
- 《C程序设计》
- objective-C程序设计学习笔记2--类
- C++/C程序设计入门
- 《C程序设计》算法归纳
- Turbo C 程序设计初步
- C#.NET程序设计 练习题
- msp430 C 程序设计学习
- .NET 程序设计规范(C#)
- C程序设计 示例程序
- C程序设计之四书五经
- C/C++ 程序设计
- C语言模块化程序设计
- C程序设计之四书五经
- SQLServer比较时间大小
- 在maven工程中pom.xml遇到引用不到正确的jar包的问题?
- 使用split和使用Substring的效率问题
- 设计模式之外观模式
- L1-006. 连续因子
- C++程序设计 类
- Oracle 11g ORA-14450: 试图访问已经在使用的事务处理临时表
- 4、垃圾收集之垃圾收集算法
- 读c++ primer有感——stl性能leetcode刷题直观测试
- 360浏览器form多次提交的问题
- Protocol协议
- input的placeholder设置字体颜色
- Android 判断当前设备是手机还是平板
- 【WLAN从入门到精通-基础篇】第7期——AP上线过程