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++面向对象学习之路

多文件链接

  1. 命令行
  2. make的使用

变量定义

  1. auto的使用 相关学习网址
  • 机理:根据后面的赋值,推测变量类型
  • 作用:简化变量初始化的书写,例如迭代器
  • 注意:
    • 变量必须初始化(即赋值)
    • auto是占位符,不可用于类型转换,例sizeof和typeid
    • 同一个auto里面只能定义一种类型
      auto x1 = 5, x2 = 5.0, x3='r';// This is too much....we cannot combine like this
      
  1. 指针 new/delete 相关学习网址
  • 这两个操作与sizeof一样不是函数
  • 与malloc的区别:malloc不可用于初始化
  • 例:
    int *a1=new int;
    int *a2=new int[10];
    delete a1;
    delete[]a2;
    
  1. 左值引用 相关学习网址
  • 格式:
    int v0;
    int &v1=v0;
    
  • 前提:旧变量已经占有内空间,即右侧值能够取地址,若无法取地址,则用常引用
    const int &t=10;
    //相当于
    const int temp=10;
    const int &t=temp;
    //const 使得temp指向的地址只可存为10这个值,只可读,不可改变
    
  • 作用:可使得多层嵌套时,方便阅读,例用于结构变量
    int t=a.b.c;
    //等价于
    int &temp=a.b;
    int t=temp.c;
    
  • 注:函数的返回值可以是引用类型,但不可是函数临时变量
  1. 右值引用 相关学习网址
  • 特点:不可取地址、没有名字的就是右值
  • 格式:
    int && sum=3+4;
    float && res=ReturnValue(f1,f2);//将函数的返回值保存下来
    void ReturnValue(T && s,T && t){...}
    
  • 作用:减少临时变量拷贝的开销

变量的初始化、类型的推导、基于范围的for循环

  1. 初始化列表
    int a[]={1,2,3};
    //等价于
    int a[]{1,2,3};//列表的初始化中,花括号前的等号可省略
    
  2. 初始化变量
    int a=3+5;
    int a={3+5};
    int a(3+5);
    int a{3+5};
    int *i=new int(10);//i指向的内存中有个初始值10
    double *q=new double{1.2f};
    
  3. 变量类型的推导
    struct{char *name;} anon_u;
    struct{int d;decltype(anon_u)id;} anon_s[100];//匿名的struct数组
    int main{
    decltype(anon_s)as;
    cin>>as[0].id.name;
    ...
    }
    //decltype的用法:https://blog.csdn.net/u014609638/article/details/106987131/
    
  4. 基于范围的for循环
    int arr[]={1,2,3};
    for(auto e:arr) cout<<e<<endl;
    

函数的重载

  • 注意:保证各个函数的参数不同

  • 例:

    void print(int a){
        cout<<a<<endl;
    }
    void print(string str){
        cout<<str<<endl;
    }
    

函数参数的缺省值与追踪返回类型的函数

  1. 函数参数的缺省值
  • 适用情形:函数参数一般有一个固定值

  • 注:只可放在函数的最后几个参数(若有n个参数,k个可直接赋值,则第n-k+1~n个参数是直接赋值的)

  • 例:

    void print(char* msg = "hello"){
        cout<<msg<<'#';
    }
    int main(){
        print("Berjing...");
        print();
        return 0;
    }
    //输出Beijing。。。#hello#
    
  1. 追踪返回类型的函数
  • 普通声明:

    int func(char *ptr,int val);
    
  • 追踪返回类型的函数声明:

    auto func(char *ptr,int val) -> int;
    auto func(char *ptr,int val);//这种写法的正确性有待指正
    
  • 作用:若函数返回值未知,且需根据函数参数推导,则可使用这种写法

    template<typename T1, typename T2>
    auto Sum(T1&t1, T2& t2) -> decltype(t1+t2){
        return t1+t2;
    }
    

类的定义

  • 自定义类型,包含函数与数据

  • 类中函数——成员函数

  • 类中成员——数据成员

  • 类的成员(数据、函数)可拥有不同的访问权限

  • 权限种类:public、private、protected

    • 访问权限
    class Matrix{
    public:
    	void fill{char dir);
    private:
    	int data[6][6];
    };
    class Matrix{
    	int data[6][6];
    public:
    	void fill{char dir);
    };
    
  • 对象:用类定义的变量

  • 调用形式:对象名.成员名(仅限public)

  • 类外定义成员函数时,要加类名限定,格式:类名::函数名( :: 域运算符)

  • 成员函数的两种定义:

    //(1)在类内定义成员函数
    Class Matrix{
    Public:
    void fill(char dir){;
    }
    };
    //(2)在类外定义成员函数
    Void Matrix::fill(char dir){;
    };
    
  • 类中默认一个指针this(编译器产生),指向本身对象存放的地址,用”->”访问

  • 友元函数:

    • 可访问类的private成员
    • 类型:friend 函数原型;
    • 特点:
    1. 会破坏封装性
    2. 与声明位置无关

构造函数

  • 默认构造函数:无参数
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:26:01  更:2021-08-06 09:27:30 
 
开发: 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/9 9:21:05-

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