栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++学习记录(二)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++学习记录(二)

文章目录
  • 1、引用
    • 1、引用的概念
    • 2、引用作为函数参数
    • 3、引用的本质
  • 2、函数的一些用法
    • 1、函数的默认参数
    • 2、函数的占位参数
    • 3、函数的重载
  • 3、类和对象
    • 1、基本含义
    • 2、封装
    • 3、c++一个类的示例

1、引用 1、引用的概念

c语言中有结构体别名,还有一些类型别名,感觉有点像,具体的可以看下面的例子

引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。

下面的例子中实现了一个别名:

代码如下:

#include
using namespace std;


int main()
{
	//引用基本语法

	int a = 10;
	int &b = a;//这里创建了引用

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	b = 100;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	system("pause");
}

引用这里有一些注意事项:

  • 引用必须要初始化
  • 引用一旦初始化之后就不可以被修改,注意这里是引用不能被修改,赋值操作是可以的

详情如下所示:

2、引用作为函数参数

函数中传递的都是形参,我们知道形参的传递会带来很大的问题,我们一般的解决方式是使用指针来完成这一目的,但是使用引用也可以用形参来修饰实参,这样一定程度上可以替代指针的方式。

下面是使用三种方式来实现交换变量

结果如下,可以看到使用引用也可以改变变量。

3、引用的本质

引用的本质是一个指针常量,例如我们创建下面的函数:

void func(int& ref)
{
	ref = 100;
}

其实就是等效于:

*ref = 100;

再比如我们定义一个数据,用一个引用来做他的类型别名:

	int a = 10;

	int &ref = a;
	ref = 20;

其实就等效于:(这里是指针常量,这也说明了为什么引用不可以修改但是可以被赋值。)

int * const ref = &a;
2、函数的一些用法 1、函数的默认参数

这个就根python里面的默认参数差不多,使用默认参数的效果如下:

当然默认参数也是可以修改的

但是使用默认参数也要注意,不要错误使用,比如下面的情况:

另外要注意的是函数声明和函数实现这里

2、函数的占位参数

是一种参数形式,用来做占位,函数调用的时候需要补全这个参数,如下所示:

3、函数的重载

为了提高函数的复用性,使用相同的函数名,函数重载的条件为:

  • 在同一个作用域
  • 函数名称相同
  • 函数的参数类型或者个数或者参数的顺序不能相同

如下所示:

运行的结果如下所示:

这里注意,如果只是返回值不同是没有用的,这不符合我们之前设置的条件!

3、类和对象 1、基本含义

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。

类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。(和结构体有点像哈)

下面是一个类的组成:

2、封装

下面我们定义一个学生类,如下所示:


其中public表示是公共权限,类中所有的属性和行为称为成员,其中:

  • 属性分为:成员属性和成员变量
  • 行为分为:成员函数和成员方法

下面我们在主函数中进行操作,如下所示:


这里我们可以直接用成员属性进行赋值,也可以用成员方法来实现,运行如下所示:

源代码如下:

#include
using namespace std;
#include

class Student
{
public:
	void setName(string name)
	{
		m_name = name;
	}
	void setID(int id)
	{
		m_id = id;
	}

	void showStudent()
	{
		cout << "name: " << m_name << " ID: " << m_id << endl;
	}

public:
	string m_name;
	int m_id;

};



int main()
{
	Student stu;
	//stu.m_name = "ffdsaf";
	//stu.m_id = 110;
	stu.setName("dfsfdf");
	stu.setID(110);
	stu.showStudent();

	system("pause");
}

上面只用到了公共权限,不过还有其他两种权限,下面来看其他两种,分别是:

  • 保护权限:protected 类内可以访问,类外不能访问
  • 私有权限:private 类内可以访问,类外不能访问

下面的例子进行了解释:

然后还有一些注意的,例如struct和class创建类的区别

就是一个私有权限和公共权限的区别,不过一般还是class这种方式用的比较多一点:

下面是成员属性私有化的样例

大概思路就是成员私用私有化进行定义,然后公共权限里面设置读写函数来实现,如下所示:

从上面的例子来看,将成员属性私有化的优点在于:

  • 可以自己控制读写权限
  • 对于写的权限,可以检测数据的有效性

具体的案例如下所示,其中上面的一个方法实现了写的功能,下面的实现了读的功能:

运行结果如下所示:

3、c++一个类的示例

下面来设计一个立方体类,设计如下:

运行结果如下所示:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号