C++基础知识学习(1)

1 c++是什么?
       是一门面向对象的编程语言  
     2 为什么要学c++
         1 找工作
         2  服务于QT    c++(MFC/QT类库) java c# lua...
          UI----》用户
          cli->命令行--》专业
    3 c++开发工具
         1  QT---》安装在纯英文路劲下
         2 linux  vi  test.cpp     g++ -o test test.cpp  ./test
         3 vs
   4 c++和C的关系?
      c++是在C语言的基础上发展而来的,是C的扩展和延伸
      c++完全兼容C,C++在C的基础上增加了一些新的特性,
      C++主要增加了面向对象和泛型编程机制,提高了编程开发效率
   5 c++的组成?
    c++有3个组成部分:
    1 面向过程(完全兼容C语言)
    2 面向对象(封装 继承 多态)
    3 泛型编程(模板 stl)
  6 应用领域
     游戏  数字图像处理 嵌入式UI 编译器 浏览器 测试程序 停车管理 。。。
  
c++课程大纲:7+2
     day1:c++介绍  c++扩展语法
     day2:封装 类 对象 构造函数 析构函数
     day3:C++关键字 友元 运算符重载
     day4: 模板 STL
     day5:继承
     day6:多态
     day7:c++关键字 异常处理 转化函数 智能指针
      
     day1:
      1 c++介绍 
      2 c++扩展语法--》引用 函数重载 默认参数 new/delete运算符 命名空间 语言链        接性 输出输入
      2.1引用
    定义:就是变量的别名,和该变量共享一块内存空间,对引用的操作等同于                            对变量本身的操作。
    引用的定义格式:类型标识符 &引用名=目标变量名   
    特点:1 定义引用时必须初始化(定义变量、指针可以不用初始化)
               2 一个变量可以有多个别名,一个引用名不能对应多个变量
               3 引用可以有多级引用,但是不能写成:int &&b=a;//error
                               只能一级一级引用:int &c=b;int &b=a;int a=10;
               4 const修饰的常引用不可以被修改(常引用只能读不能写)
        const int &b=a;int a=10;
    作用:引用主要用来传递函数的参数和返回值。在c++语言中,函数的参数             和返回值有三种传递方式:值传递 地址传递  引用传递
    指针和引用的区别和联系:
                 1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分    配内存空间。
    2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时    候不一定要初始化,并且指向的空间可变。(注:引用的值不能为NULL)    int &b=NULL;//错
    3、有多级指针,int **p=&b;有多级引用,只能有一级一级的引用。int     &b=a;int &c=b;
    4、指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时        引用的变量值加1)
    5、sizeof 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到    的是指针本身的大小。
    6、引用访问一个变量是直接访问,而指针访问一个变量是间接访问。
     2.2函数重载-->g++
          定义:函数名相同,函数入参不一样(个数 类型)的设计函数方法。
                    函数重载与返回值无关。
          注意:相同名字的函数之间的关系是重载关系,这些同名函数称为重载函数。
    使用时到底调用哪个重载函数?由实参的数据类型和参数个数决定
          作用:同一个作用范围对外提供统一的接口,实现不同功能,方便用户调用
          那些函数适合设计成重载函数?函数行为相近,在使用时参数个数和类型不一样    的函数可以设计成重载函数
     2.3默认参数
         定义:在设计定义函数的时候,可以给不太重要的参数一个默认值,如果传实参    ,该参数的值就是实参的值,如果没有传实参,该参数就是用默认值。
        特点:1 函数可以有多个默认参数,但是默认参数的设置只能从右到左
     2 实参在给形参传值时,是从左到右进行传递的
     3 函数在声明的时候有默认参数,在定义时就无需再写默认参数
     4 默认参数不能是引用名
     5 当默认参数和函数重载一起使用,容易产生二义性,程序员自己避免
      作用:在不改变源代码接口的情况下,提高代码的可扩展性
      2.4 new/delete运算符
    作用:动态申请和释放内存
                  new/delete用法:   地址=new 数据类型
                       delete [] p
             与malloc/free的区别:
    1 new/delete是运算符,使用时不需要加头文件;malloc/free是库函数    ,需要加头文件<stdlib.h>
    2 malloc的返回值是void *型指针,需要强转才能使用;new的返回值是    特定的数据类型指针,不需要强转
    3 new申请内存的时候已经确定了内存中存放的数据类型,new会做类型检                   查,即指针的数据类型要和new后边的数据类型一致
                  4 malloc申请内存大小需要手动计算;new只需要确定元素个数和类型
    5 free的入参是内存的首地址;delete内存要分情况:delete p;delete[]p
    6 new一个对象时会自动调用该对象的构造函数,delete一个对象时会自动    调用该对象的析构函数。而malloc/free没有这个功能
         2.5命名空间---》名字空间
    作用:为了解决C++工程代码中命名冲突问题的
    命名空间:本质是划分不同的作用域,用于管理函数名、变量名和类名
    c++提供了两种命名空间:
    1 标准命名空间--》在c++标准库中已经定义好的名字空间,称为std(标        准命名空间名称)
    如何使用?using namespace std;
    2 自定义命名空间
       如何定义?namespace xxx{}
       注:xxx--->自定义命名空间名称
            {}---》作用域
      如何使用?1 using xxx::变量名/函数名---》声明使用该作用域的变量或            函数
             使用该变量或函数();
        2 xxx::变量名/函数名();
            2.6标准输入输出
    c++ 中输出输入用:cout/cin
    cout:C console  out--->控制台输出
    cout是一个输出对象,它在标准命名空间中定义了,使用前要加上:
        using namespace std;
    如何使用?1 std::cout<<"字符串"<<i<<std::endl;
        2 cout<<"字符串"<<endl;
                                      cout<<"字符串\r\n";
    
    cin:C console  in--->控制台输入
    cout是一个输入对象,它在标准命名空间中定义了,使用前要加上:
        using namespace std;
    如何使用?cin>>i;
        cin>>i>>j;
           2.7 语言链接性---》C++和C 语言的混合编程
    C++和C的混合编程有两种方式:
    1 c++文件中使用C的语法 test.cpp---》使用c++编译器编译
    2 c++文件中使用C编写的并且是C编译器编译的库函数,那么要求:
    在C++文件中要声明可以使用C库函数(包含头文件),同时要声明C库函    数允许C++程序调用(extern "C" 函数名)
    extern "C" :表示将后边声明的函数提供给C++工程使用。

day1作业:                     
1  分别用值传递 地址传递 引用传递测试两个整数的交换
   int sw1(int a,int b);---->不能交换
   int sw2(int *a,int *b);----》能交换
   int sw3(int &a,int &b);----》能交换       
2 指针和引用的区别和联系?  
3.用函数重载实现两个int数的乘积,两个float类型的数的乘积,一个int,一个double数的乘积,三个int类型数的乘积。
4 预习类和封装 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值