IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++续基础篇二 -> 正文阅读

[C++知识库]C++续基础篇二

一、引用:

意义:对变量取别名
用法: &: 引用符号

<数据类型> &<引用名> = <变量名>;
例如:
int n = 8;
int &a?= n;

int &b = n;//可多个引用同一个

注意:引用必须初始化,初始化后引用的空间就不能被改变了

1、常量引用:

用法:const int &a = 12;

多在在函数传参中使用:避免函数内部修改变量。

int fun(const int &r_n)
{
?????????//r_n不能被修改.
}

例如:

#include <iostream>
using namespace std;

void DataHandle(const int &r_num)
{
    //r_num += 10;//不能修改
    cout << r_num << endl;
}

int main()
{
    int n = 14;
    const int &r_n = n; 
    const int &r_n1 = 89;
    n = 5;
    DataHandle(n);

    cout << n << endl;
    cout << &r_n << "--" << &n << endl;
    return 0;
}

?

二、引用与函数

引用作为函数参数

C语言: ?值传递、地址传递
C++:
引用传递(可以直接修改实参值,且避免指针的操作)

引用作为函数返回值:

1.函数内的局部变量,不能返回引用。(原因: 函数结束后空间被释放掉)
2.也不能返回局部变量的地址

3.当引用作为函数返回值时(不能是局部变量),函数可以作为左值来操作。

int &fun()
{
?static int sum = 23;
?return sum;
}
{
?fun() = 35; ?//sum=35

}

引用的本质:

引用的本质其实就是 指针常量

int * const p; ?指针常量: 指针的指向初始化后不能改变.
int n = 12;
int &r_n = n; ?//相当于: int * const r_n = &n;
r_n = 100; ???//相当于: *r_n = 100;
const int &r_num = n; ?//相当于: const int *const r_num = &n;
r_num = 89; ?// 报错,不能修改

?例如:

?

三、函数高级

1.默认参数

?定义:

函数类型 函数名(int n1, int n2, int n3=1)
{
n3就是默认参数,可以不用传递,内部直接使用1这个值.
?如果外部传递了n3,则默认参数被覆盖。

}

注意:

????1. 默认参数的设置,在函数声明和函数定义中选其一,不能同时在声明和定义中设置
????2. 从第一个默认开始,后续所有参数都应该是默认的????

2.函数重载

重载条件:

????????1、函数名必须一样.
????????2、函数参数要有区分(个数、类型、顺序).
????????3、函数的作用域必须一样.

注意:返回值不能作为重载条件

3.string 类型用法

C++封装的字符串类型. 被定义在std名字空间下.
支持运算符操作:+, >, < , ==, << , >> 等...

字符串定义: std::string s1 = "hello";
字符串数组定义: std::string s2[6] = {"ewr", "vfda", "rtw"};
字符串指针: std::string *p = &s1;
字符串引用: std::string &r_s = s1;

四、类与对象

C++面向对象的三大特性:封装、继承、多态.

1.封装

对象:C++一切事物都可以看作一个对象,并且认为对象应该有其 属性 与 行为
例如: 张三是一个对象 属性:名字、年龄、身份证. 行为:吃、睡、上学...
类:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征
封装意义:
1. 将属性与行为作为一个整体,表现生活中的事物.
2. 将属性和行为加以权限设置(public、private、protected)
封装语法:
属性:也被称为成员变量 或 成员属性
行为: 也被称为成员方法 或 成员函数

用法:

关键字: class
class <类名>
{
public: ??//权限设置
?//属性 (成员变量)
?//行为 (成员方法,成员函数)
};
实例化一个对象: <类名> <对象名>;?
Dog d1;

权限:

public: 公共的. public修饰的属性或行为,能够在类外或类内被访问.
protected: 受保护的. protected修饰的属性或行为,只能在类内被访问,类外不能访问,子
类可以访问
private: 私有的. private修饰的属性或行为,只能在类内被访问,类外不能访问,子类不能
访问
类设计模型:
项目开发中,通常会将属性用private修饰,行为使用public修饰

作用:
1、读写权限自己规定,对属性起到保护作用.
2、可以对属性值的设置进行有效性检测.

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 10:54:41  更:2022-09-13 10:57:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 13:41:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码