目录
- 命名空间 :防止程序中的重名问题
口命名空间
用于防止程序中的同名问题,最常见的是使用std命名空间。
例:必需使用以下语法,才能正确使用cin,cout输入输出语句:
using namespace std;
new与 delete
new、 delete用于堆空间的分配与回收。
new:用于从堆中分配指定大小的内存区域,并返回获得内存
区域的首地址。相较于 malloch可以自动计算大小、无需指针转换
用法示例:
int*ar= new int [100]
delete:用于释放new分配的堆内存。
用法示例:
delete[]ar;
const常量
常量在声明时一定要赋初值,而在程序中间不能改变其值。
格式:
const i 类型变量名=初值
例如
面向对象的编程思维 通常将常量声明const常量便于迁移
const int LENGTH =10
引用
引用是某个对象(即变量)的别名,定义形式如下:
类型&引用名=变量名;
例如:
int a=10
int &b= a:
引用很少单独使用,常常作为形参的方式来使用:
例如:
void swap(int&a,int&b)
[注意]
y在变量声明时出现&才是引用运算符,其它地方的&都是取地址运算符;
v引用代表一个变量的别名,必须在定义时初始化,不能在定义完成后再赋值;
一个引用名只能作为一个变量的别名;
值的传递方式
值传递,不影响原先的值
地址传递,引用传递会影响原先的值
直接为传入的变量换名,但是指向的是同一段空间
公用存储方式;
引用是c++特有的传值方式
函数重载
重载就是:一个函数可以有多种写法,一般是函数名相同,参数不同。
注意:
重载函数的形参必须不同:个数不同或类型不同。
编译程序将根据实参和形参的类型及个数的最佳匹配来选择调
用哪一个函数。
int add(int x, int y)
int add(int a, int b) 这是不正确的
编译器不以形参名来区分 而是通过参数的类型,数量进行一个区分
不要将不同功能的函数声明为重载函数,以免出现调用结果的误解、混淆。
√以下定义方式不好,编程时需要避免:
不可以是两个参数同时可调用
/函数在声明时可以预先给出默认的形参值,
调用时如给出实参,则采用实参值,否则采用预先给出的默认参数值。
如果一个函数有原型声明,且原型声明在定义之前,
则默认参数值必须在函数原型声明中给出
y而如果只有函数的定义,或函数定义在前,则默认参数值需在函数定义中给出。
一个类必须有属性和数据
类的定义形式说明
public-与 private是访问权限修饰符。被 public修饰的属性
和函数可以在类内部与类外部被访问;被 private修饰的
属性和函数只能在类内部被访问;
v成员函数可以访问本类中任何成员。一般的做法是将需
要被外界调用的成员函数指定为 public,它们是类的对外
接口
y有的函数并不是准备为外界调用的,而是为本类中的成
员函数所调用的,就应该将它们指定为 private
属性一般定义成 private,
行为一般定义成 public
这样就实现了封装
构造函数
构造函数( constructor)是一种特殊的成员函数,它
为对象初始化提供了功能更强,使用更方便的途径。
构造函数特点
1.构造函数的名字必须与类的名字相同
定义构造函数时不能指定返回类型;
3.构造函数的代码与其它函数一样,但一般不直接调用(显式调用)
4.创建类的一个新对象时,会隐式地自动调用构造函
数。也就是说,当程序中声明一个新对象时,程序会
自动调用该对象所属类中定义的构造函数来初始化这
个对象的状态
5.若在定义类时没有定义构造函数,C++会自动为该类
创建一个缺省( default)的构造函数。这个缺省构造
函数没有任何形式参数,且函数体为空。//定义过就不会自动生成 自己手动自定义的无参狗咱函数
析构函数定义
y析构函数( destructor)也是一种特殊的成员函数,
它在对象撤消时执行一些清理任务。
y例如在建立对象时用new开辟了一片内存空间,
delete会自动调用析构函数后释放内存
析构函数特点
1.析构函数的名字必须是在类名前加上一个波纹号
“~”,以区别于构造函数;
v2.定义析构函数时也不能指定返回类型
v3.在对象消亡时,隐式地自动调用析构函数。也就是
说,当程序中一个对象作用结東时,程序会自动调用
该对象所属类中定义的析构函数来清除这个对象所占
的存储空间;
v4.若在定义类时没有定义析构函数,C++会自动为该
类创建一个缺省的析构函数。这个缺省析构函数没有
任何形式参数,且函数体为空。
return表示程序结束返回操作系统
构造函数成员列表
ios(int a,int b):A(a),B(b){
}
构造函数的重载
对象的构造函数是相对独立的
默认构造函数
调用时可以不需要参数的构造函
构造函数。
v当不定义构造函数时,编译器自动产
数
y在类中可以自定义无参数的构造函数
造函数
y全部参数都有默认形参值的构造函数
函数
一个系统可以有多个构造函数 但是只能有一个默认的构造函数
类的封装(重要)
封装的含义是:
所有属性都是私有的,外部不能直接访问;
提供与属性相关的get/set函数,间接访问属性。
为了完成封装的思想,
程序。
・增加了以下函数:
gethour, getminute, getsecond
sethour, setminute, setsecond