c++总结

一、递归:
程序直接或间接调用自身
层层分解,大问题化小问题
关键:递归定义和递归终止条件
二、结构体类型:
struct 类型名{
数据类型1 成员名1;
数据类型2 成员名2;

};
必须要先声明一个结构体类型,再定义和使用结构体变量。
结构体变量格式:
struct 结构体类型名 变量名列表;
结合:
struct 类型名{
数据类型1 成员名1;
数据类型2 成员名2;

} 变量名;
三、标准库类型string
使用string 类要包含头文件<string>
string 类支持字符串对象的各种操作:
1、各种初始化方式
2、字符串之间的复制、比较、连接
3、查询字符串长度和判断字符串是否为空
4、访问字符串中的单个字符
四、指针
指针存放指定类型对象的地址,要获取对象的地址,使用取地址运算符“&”
如果指针指向一个对象,则可以通过指针间接访该对象,使用指针解引用运算符“
指针的类型即指针指向的类型
每个指针都有相关的类型,需要在定义指针时指出
type
pointer
指针的类型指出了如何解释该内存地址保存的内容,以及该内存区域应该有多大
不同类型指针的表示方法和保存的地址值并没有分别,区别只是指针指向的对象类型不同
空指针:指针值为0,不指向任何对象
生成空指针的2种方法 :
int *p1 = 0;
int *p2 = NULL;
五、引用
可作为对象的另一个名字,间接地操纵对象
引用的定义和初始化:
引用由类型标识符和一个说明符(&)来定义
type& refVariable = leftValue;
引用必须被初始化,初始值是一个有内存地址的对象
定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用
一旦初始化完成,引用将和它的初始值对象一直绑定在一起
引用的定义和初始化:
类型 &引用名 = 初始值;
六、类和对象
c++类定义的格式:
class 类名
{
public:
公有数据成员和成员函数;
protected:
保护数据成员和成员函数;
private:
私有数据成员和成员函数;
};

各成员函数的实现;
注意事项:
类的数据成员可以是其他类的对象,但不能以类自身的对象作为本类的成员,而类自身的指针和引用可以作为类的成员。
类定义必须以分号“;”结束。
1、成员函数:
类的成员函数是实现类的行为属性的成员。
一般将成员函数声明为函数原型,在类外具体实现成员函数。
成员函数的定义:
返回值类型 类名::成员函数名(参数表)
{
函数体
}
成员函数可以重载
2、对象:
对象是类的实例或实体。
类与对象的关系,如同C++基本数据类型和该类型的变量之间的关系。
对象的定义:
类名 对象名1,对象名2,…,对象名n;

对象成员的访问包括:
圆点访问形式:对象名.公有成员
指针访问形式:对象指针变量名->公有成员
3、构造函数:
构造函数是用于创建对象的特殊的成员函数
当创建对象时,系统自动调用构造函数
构造函数的作用是:
为对象分配空间;对数据成员赋初值;请求其他资源。
用户没有定义的构造函数时,系统自动提供缺省版本的构造函数
构造函数名与类名相同:类名
构造函数可以重载
构造函数可以有任意类型的参数,但没有返回类型
利用构造函数直接创建对象.其一般形式为:
类名 对象名[(实参表)];
利用构造函数创建对象时,通过指针和new来实现。其一般语法形式为:
类名 *指针变量 = new 类名[(实参表)];

4、析构函数:
析构函数是用于取消对象的成员函数
当一个对象作用结束时,系统自动调用析构函数
析构函数的作用是进行对象消亡时的清理工作
没有用户定义析构函数时,系统提供缺省版本的析构函数
析构函数名为: ~ 类名
析构函数没有参数,也没有返回类型
定义格式(类外实现):
类名::~类名()
{
函数语句
}
一般情况下,可以不定义析构函数
但如果类的数据成员中包含指针变量是从堆上进行存储空间分配的话,需要在析构函数中进行存储空间的回收

5、常成员函数:
说明格式如下:类型说明符 函数名(参数表) const;
6、静态成员:
类成员冠以static声明时,称为静态成员。
静态数据成员为同类对象共享。
静态成员函数与静态数据成员协同操作。
定义静态成员函数的格式如下:
static 返回类型 静态成员函数名(参数表);
与静态数据成员类似,调用公有静态成员函数的一般格式有如下几种:
类名::静态成员函数名(实参表)
对象. 静态成员函数名(实参表)
对象指针->静态成员函数名(实参表)
7、友元函数
如果在本类(类A)以外的其他地方定义了一个函数(函数B)
这个函数可以是不属于任何类的非成员函数,
也可以是其他类的成员函数,
在类体中用friend对其(函数B)进行声明,此函数就称为本类(类A)的友元函数。
友元函数(函数B)可以访问这个类(类A)中的私有成员
友元:
若F类是A类的友元类,则F类的所有成员函数都是A类的友元函数
友元类通常设计为一种对数据操作或类之间传递消息的辅助类
友元类的声明格式:
friend class 类名;

七、重载运算符
不能重载的算符
. :: .* ?: sizeof
可以重载的运算符 :+ - * / % ^ & | ~
! = < > += -= = /= %
^= &= |= << >> >>= <<= == !=
<= >= && || ++ – ->
‘ ->
[] () new delete new[] delete[]

重载运算符函数可以对运算符作出新的解释,但原有基本语义不变:
不改变运算符的优先级
不改变运算符的结合性
不改变运算符所需要的操作数
不能创建新的运算符
一元运算符:
Object op 或 op Object
重载为成员函数,解释为:
Object . operator op ()
操作数由对象Object通过this指针隐含传递
重载为友元函数,解释为:
operator op (Object)
操作数由参数表的参数Object提供
二元运算符:
ObjectL op ObjectR
重载为成员函数,解释为:
ObjectL . operator op ( ObjectR )
左操作数由ObjectL通过this指针传递,右操作数由参数ObjectR传递
重载为友元函数,解释为:
operator op ( ObjectL, ObjectR )
左右操作数都由参数传递

成员运算符函数的原型在类的内部声明格式如下:
class X {
//…
返回类型 operator运算符(形参表);
//…
}
在类外定义成员运算符函数的格式如下:
返回类型 X::operator运算符(形参表)
{
函数体
}
重载赋值运算符:
赋值运算符重载用于对象数据的复制
operator= 必须重载为成员函数
重载函数原型为:
类名 & 类名 :: operator= ( 类名 ) ;
重载输出运算符“<<”和重载输出运算符“>>”只能被重载成友元函数,不能重载成成员函数

就这六个周来说,依旧浑浑噩噩的,基本上上课也老是走神,主要还是太懒了,照这样下去肯定又得挂了,希望剩下的课程期间先能够克服走神的毛病。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值