c++高级语言专题(一)

类和对象

基本思想

面向对象编程:就是属于吧构成问题的各个事物分解成各个对象,建立对象不是为了完成一个步骤,而是为了描述一个事物在整个解决问题的步骤中的行为。
面向对象三大特征:封装、继承、多态。

任何一个对象都具有的两要素:
属性(静态特征)
行为(动态特征)

面向对象的程序组成:
对象 = 算法+数据结构
程序 = (对象+对象+对象+对象+…)+消息
消息:作用是对对象的控制

类的实现

什么是类?
对象的类型称为类(class)。
类代表了某一批对象的共性和特征。
类是对象的抽象,而对象是类的具体实例。

类中三种词:
private、public、protected
在这里插入图片描述

类中的静态成员函数:(static修饰)
当我们把一个数据成员的存储类型指定为静态类型时,则该类产生的所有对象其静态成员均共享一个存储空间,这个空间时在编译的时候分配的。
在这里插入图片描述
在这里插入图片描述

静态成员定义:
类内定义,类外说明。
在这里插入图片描述
静态成员函数(重点):
在这里插入图片描述
在这里插入图片描述

构造函数、析构函数、拷贝函数

构造函数:是创建对象时,用来给对象初始化。
构造函数是类的成员,系统约定构造函数名与类名相同。
创建对象指针:
在这里插入图片描述
析构函数:在对象生命周期结束时,释放系统为对象所分配的空间,即撤销一个对象。
析构函数也是类的成员。
在这里插入图片描述
拷贝构造函数:就是复制构造函数。
它的形参必须是引用,但不限制为const,通常会加上const。
如果类带有指针变量,并有动态内存分配,则它必须有一个拷贝构造函数。+

c++友元与动态内存

友元是定义在类外部的普通函数或类,但需要在类体内进行说明,在说明前加上 friend。
友元不是成员函数,但是它可以访问类中的私有成员和保护成员。
格式:

friend<type> FuncName(<args>);

在这里插入图片描述
在这里插入图片描述
举例代码如下:
在这里插入图片描述
友元类:
一个类作为宁一个类的友元,意味着,这个类的所有成员函数都是宁一个类的友元函数,都可以进行访问。
语句定义: friend class 类名(友元类的类名)
在这里插入图片描述
此时,b 中就可以调用 a 的数据。

动态内存:(new 关键字)
在这里插入图片描述
如下代码:我们开辟后,得删除,避免内存泄漏。
在这里插入图片描述在这里插入图片描述

函数重载和运算符重载

格式: operator+ (此处为运算符)
运算符重载举例如下:
在这里插入图片描述
下面代码是对 ++ 运算符的重载,一个前置一个后置。

#include <bits/stdc++.h>
using namespace std;

class Ctestss
{
public:
	Ctestss():i(0){}
	Ctestss operator++()
	{
		cout << "diaoyong " << endl;
		Ctestss obj;
		obj.i = ++i;
		return obj;
	}
	Ctestss operator++(int) // 括号中插入int 表示后缀
	{
		cout << "2::::::: " << endl;
		Ctestss obj;
		obj.i = i++;
		return obj;
	}
	void disp()
	{
		cout << "\n i = " << i << endl;
	}
private:
	int i;
};
int main()
{
	Ctestss boj1, obj2;

	//obj2 = ++boj1;
	//boj1.disp();
	//obj2.disp();

	obj2 = boj1++;
	boj1.disp();
	obj2.disp();
	
	return 0;
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值