精华内容
下载资源
问答
  • c++入门

    2019-11-13 08:00:02
  • C++入门经典

    热门讨论 2011-10-10 17:05:44
    C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典C++入门经典
  • C++入门PPT

    2018-12-03 11:16:20
    C++入门PPT,1到18章介绍了C++学习的重点知识,为初学者概括了重要知识点。
  • C++入门基础精讲视频

    万人学习 2016-07-28 22:14:43
    本视频课程介绍C++的基本语法,通过实践的方式讲解C++每一个知识点,应用大量示例展现每一个知识点的多种用法,强化训练,使C++入门学习者掌握知识点.
  • C++入门

    2006-04-29 23:04:00
    C++中的一些基本的概念 http://blog.csdn.net/Kusk/category/9870.aspx
         C++中的一些基本的概念 http://blog.csdn.net/Kusk/category/9870.aspx
    展开全文
  • C++ 入门超详解!

    千次阅读 2021-02-03 15:40:02
    c++入门超详解!!!

    1.命名空间

    1.1命名空间简介

    1. 命名空间随标准C++而引入,相当于一个灵活的文件域(全局域),以关键字namespace开头给其起个名字,并用大括号把定义区域括起来(声明块)。
    2. 在域外使用域内成员时,需要加上命名空间名作为前缀,再加上域操作符“::”,可以使用嵌套定义。
    3. 如果在关键字namespace之前使用using,就不必使用限定修饰名,即可以一次性使命名空间中所有成员都可以直接被使用。

    标准C++库中所有组件都在std的命名空间中声明和定义的,在标准C++平台调用如下语句:
    using namespace std;

    1.2代码示例:

    using namespace std; //展开命名空间
    namespace Name  //定义Name命名空间
    {
    	int a = 10;
    	int sub(int x, int y) 
    	{
    		return x - y;
    	}
    	namespace N1  //命名空间嵌套
    	{
    		int b = 5;
    	}
    }
    

    2.c++输入输出

    1. 使用输入和输出需要头文件iostreamm;
      #include<iostream>
    2. 输入 cin>> a>>endl;
      cin>>"输入a的值为:" >>endl;
    3. 输出 cout<<a<<endl;
      cout<<"输出a的值为:" <<a<<endl;

    3.缺省参数

    3.1缺省参数简介

    1. 在C语言中,函数没有指定参数列表,默认可以接收任意多个参数,但在C++中,因为严格的参数类型检测,没有参数列表的函数,默认为void,不接收任何参数。
    2. 缺省参数:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用函数时,如果没有指定实参则采用该默认值,否者使用指定的实参。

    3.2全缺省

    全缺省:全缺省参数所有参数都有默认值,如果没有手动传参,那么编译器会使用默认参数列表中的参数。但是这里值得注意的是,如果传参的时候只传了部分参数,那么该值会被从左至右匹配。

    3.2.1全缺省代码示例

    void test(int a = 1,int b = 2, int c = 3)
    {
        cout << a << " " << b << " " << c << endl;
    }
    
    

    3.3半缺省

    半缺省:一部分参数有默认值:从右往左依次给值

    3.3.1半缺省代码示例

    void test(int a ,int b = 2, int c = 3)
    {
        cout << a << " " << b << " " << c << endl;
    }
    

    4.函数重载

    4.1c++函数重载的定义

    • 在同一作用域类,一组函数的函数名相同,参数列表不同(参数个数不同/参数类型不同),返回值可同可不同

    4.2函数重载的作用

    • 重载函数通常用来在同一个作用域内 用同一个函数名 命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。

    4.3c++函数重载的原理

    • 编译器在编译.cpp文件中当前使用的作用域里的同名函数时,根据函数形参的类型和顺序会对函数进行重命名(不同的编译器在编译时对函数的重命名标准不一样)但是总的来说,他们都把文件中的同一个函数名进行了重命名;
    • 在vs编译器中
      根据返回值类型(不起决定性作用)+形参类型和顺序(起决定性作用)的规则重命名并记录在map文件中。
    • 在linux g++ 编译器中
      根据函数名字的字符数+形参类型和顺序的规则重命名记录在符号表中;从而产生不同的函数名,当外面的函数被调用时,便是根据这个记录的结果去寻找符合要求的函数名,进行调用;

    4.4为什么c语言不能实现函数重载

    • 编译器在编译.c文件时,只会给函数进行简单的重命名;具体的方法是给函数名之前加上”_”;所以加入两个函数名相同的函数在编译之后的函数名也照样相同;调用者会因为不知道到底调用那个而出错;

    4.5代码示例

    int Add(int a,int b)
    {
       return a+b;
    }
    float Add(float a,float b)
    {
        return a+b;
    }
    

    4.5.1c函数重命名图例

    在这里插入图片描述

    4.5.2C++函数重命名图例

    在这里插入图片描述

    5.引用

    5.1引用简介

    • 引用是给一个已经定义的的变量取别名,而不是定义一个新的变量。
    • 引用定义格式 :类型& 引用变量名 = 已定义变量

    5.2引用特点:

    1. 多个变量可以引用一个变量
    int a = 10;
    int& b = a;
    int& c = a;
    cout<<a<<" "<<b<<" "<<c<<endl; // 10 10 10
    
    1. 引用必须初始化
    int& a; // 语法错误
    
    1. 引用只能在初始化的时候引用一次,不能在改变为引用其他的变量

    2. 常量不能被引用

    int& a = 10; // 语法错误
    const int& a = 10; // 正确,常量具有常性,只有常引用可以引用常量
    cout<<a<<endl; // 10
    

    5.3引用和const

    #include <iostream>
    using namespace std;
     
    int main()
    {
        int a1 = 10;
        cout<<a1<<endl; // 10
        
        const int& a2 = a1;
        cout<<a1<<" "<<a2<<endl; //10 10 
           
        a1 = 5;
        cout<<a1<<" "<<a2<<endl; //5 5  ai的值改变,a2的值也会改变
         
        const int a3 = 10;
        const int& a4 = a3;
        //int& a5 = a3; // 报错
        const int& a6 = 5; // 常量具有常性,只有常引用可以引用常量
        
        float a7 = 10.10;
        //int& a8 = a7; // 报错,a7是float类型,a8是int型,a7给a8赋值会产生一个临时变量,
                    // 即a7引用的是这个带有常性的临时变量,所以不能赋值
        const int& a9 = a7;
        return 0;
    }
    

    5.4引用和指针

    1. 引用是变量别名,指针保存变量的地址,二者其实有异曲同工之妙,都是直接指向对象的内存块,但是引用和指针还是有诸多不同。例如

      a) 引用必须初始化;指针可以不初始化

      b) 引用只能在定义时初始化一次,之后不能改变指向其他变量;指针指向的对象可以改变

      c) 引用不能为空,必须指向有效对象;指针可以为空

      d) sizeof指针和引用的含义不同。sizeof引用对象得到的是引用所指对象的大小;sizeof指针变量得到的是对象地址大小

      e) 引用和指针自增自减意义不同

      f) 引用比指针安全

      5、使用引用时的注意事项

      a) 不要返回一个临时变量的引用

      b) 不要返回函数内部new分配的内存的引用

    6.内联函数

    6.1内联函数简介

    • 当程序执行函数调用指令时,CPU存储函数调用之后的指令的存储器地址,复制函数的参数在堆栈上,最后将控制转移到指定的函数。然后,CPU执行功能代码,将功能返回值存储在预定义的存储器位置/寄存器中,并将控制返回给调用功能。如果函数的执行时间小于从调用函数到被调用函数(被调用者)的切换时间,则这可能成为开销。对于大型和/或执行复杂任务的函数,与函数运行所花费的时间相比,函数调用的开销通常是微不足道的。但是,对于常用的小函数,进行函数调用所需的时间通常比实际执行函数代码所需的时间多得多。小功能的开销是因为小功能的执行时间小于切换时间。

      C ++提供了一个内联函数来减少函数调用开销。 内联函数是一个在调用时按行扩展的函数。 当调用内联函数时,内联函数的整个代码在内联函数调用点插入或替换。 此替换由C ++编译器在编译时执行。 内联函数如果很小则可以提高效率。

    6.2内联函数优点

    1)不会发生函数调用开销。
    2)当调用函数时,它还节省了推送/弹出变量在堆栈上的开销。
    3)它还节省了函数返回调用的开销。
    4)内联函数时,可以使编译器对函数体执行特定于上下文的优化。 对于正常的函数调用,这种优化是不可能的。 通过考虑调用上下文和被调用上下文的流程,可以获得其他优化。
    5)对于嵌入式系统,内联函数可能很有用(如果它很小),因为内联可以产生比函数调用前导码和返回更少的代码。

    7.auto关键字与基于范围的for循环

    7.1auto简介

    • 在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量
      C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。

    7.1.1简单的识别变量类型

    在这里插入图片描述
    在这里插入图片描述

    7.2auto迭代

    • 对于一个有范围的集合而言,由程序员来说明循环的范围是多余的,有时候还会容易犯错误。因此C++11中引入了基于范围的for循环。for循环后的括号由冒号“ :”分为两部分:第一部分是范围内用于迭代的变量,第二部分则表示被迭代的范围
      在这里插入图片描述
      在这里插入图片描述

    7.2.1auto& 可以对数组 a 中的元素进行修改

    在这里插入图片描述
    在这里插入图片描述

    7.3auto特性

    1.auto不能作为函数参数
    2.auto不能直接声明数组
    3. 为了避免与C++98中的auto发生混淆,C++11只保留了auto作为类型指示符的用法
    4. auto在实际中最常见的优势用法就是跟以后会讲到的C++11提供的新式for循环,还有lambda表达式等进行配合使用。
    5. auto不能定义类的非静态成员变量
    6. 实例化模板时不能使用auto作为模板参数

    8.指针空值nullptr

    8.1nullptr简介

    • 从1972年C语言刚刚诞生以来,常数0就扮演着整数(int)0和空指针( null pointer )两种角色。为了避免理解上的二义性,C语言通常使用NULL宏来表示空指针,NULL宏通常被定义为(void *)0或0, 而C++仅仅采用0来表示空指针,这样存在一个问题:比如对于重载函数 fun(char *) 和 fun(int) 的调用来说,若直接用NULL作为参数调用fun(NULL),我们可能认为NULL作为空指针的表示,应该调用 fun(char *) 函数,然而NULL实际上的值为0,就会调用 fun(int) 。 nullptr 关键字正是为了解决这一问题而产生的。
      nullptr 能够转换成任何指针类型(包括成员函数指针和成员变量指针)和bool类型(这是为了兼容普通指针都能使用 if(ptr) 判断是否为空指针的形式),但是不能被转换为整数0。

    8.2NULL和nullptr示例

    #include <iostream>
    using namespace std;
     
    void func(void* i)
    {
    	cout << "func1" << endl;
    }
     
    void func(int i)
    {
    	cout << "func2" << endl;
    }
     
    void main(int argc,char* argv[])
    {
    	func(NULL);
    	func(nullptr);
    	getchar();
    }
    

    在这里插入图片描述
    总结

    NULL在C++中就是0,这是因为在C++中void*
    类型是不允许隐式转换成其他类型的,所以之前C++中用0来代表空指针,但是在重载整形的情况下,会出现上述的问题。所以,C++11加入了nullptr,可以保证在任何情况下都代表空指针,而不会出现上述的情况,因此,建议以后还是都用nullptr替代NULL吧,而NULL就当做0使用。

    展开全文
  • C++入门编程100题

    2020-11-10 21:19:14
    C++入门编程100题》课程是由WangTeacher精心制作一部视频教学实战课程,初步计划100个编程题目的详细讲解,从简单到复杂的顺序排列。并结合15+年的软件开发经验,把最先进的软件开发流程和编程技巧融合到课程中,...
  • 【C++】c++入门

    千次阅读 2018-05-03 13:14:03
    【C++】c++入门 1.c++的诞生 2.c++和c的关系 3.c++的开发过程 4.c++的特点 C++是一种面向对象的计算机程序设计语言,由美国的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现。C++是C语言的继承,...

    【C++】c++入门

        1.c++的诞生

        2.c++和c的关系

        3.c++的开发过程    

        4.c++的特点

     

          C++是一种面向对象的计算机程序设计语言,由美国的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现。C++C语言的继承,进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。

          它是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象面向对象程序设计、泛型程序设计等多种程序设计风格。[1]

    (一)c++的诞生

          计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。后来出现了多种计算机高级语言。

          BASIC语言是1964年在FORTRAN语言的基础上简化而成的, 它是为初学者设计的小型高级语言。

          C语言是1972年由美国贝尔实验室D.M.Ritchie研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用C语言编写的。

          但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了,于是c++诞生了。

          C++是由贝尔实验室的Bjarne博士及其同事于20世纪80年代初在C语言的基础上开发成功的 C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。

     

    (二)c++和c的关系

          从C++的名字可以看出它是C的超越和集中。C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。C++保留了C语言原有的所有优点,增加了面向对象的机制。

          C++对C的“增强”,表现在六个方面:

    (1)类型检查更为严格。

    (2)增加了面向对象的机制。

    (3)增加了泛型编程的机制(Template)。

    (4)增加了异常处理。

    (5)增加了运算符重载。

    (6)增加了标准模板库(STL)。

          面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。

      

     (三)c++的开发过程

          C++程序的开发过程一般包含程序编写、编译、连接、执行等部分。

     1.用C++语言编写程序

          C++用高级语言编写的程序称为“源程序”(source program)。源程序后缀为.cpp。

    2.对源程序进行编译

          为了使计算机能执行高级语言源程序,必须先用一种称为“编译器(complier)”的软件(也称编译程序或编译系统),把源程序翻译成二进制形式的“目标程序(object program)。目标程序一般以.obj或.o作为后缀。

           编译是以源程序文件为单位分别编译的,编译的作用是对源程序进行词法检查和语法检查。编译时对文件中的全部内容进行检查,编译结束后会显示出所有的编译出错信息。一般编译系统给出的出错信息分为两种,一种是错误(error);一种是警告(warning) 。

    3.将目标文件连接

           用系统提供的“连接程序(linker)”将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件,它的后缀是.exe,是可以直接执行的。

    4.运行程序

        运行最终形成的可执行的二进制文件(.exe),得到运行结果。

     

    (四)c++的特点

    1.优点

        · C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。

        · C++设计成直接的和广泛的支持多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。

        · C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。

        · C++设计尽可能与C兼容,借此提供一个从C到C++的平滑过渡。

        · C++避免平台限定或没有普遍用途的特性。

        · C++不使用会带来额外开销的特性。

        · C++设计无需复杂的程序设计环境。

           出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里

     

    2.缺点

           C++由于语言本身过度复杂,这甚至使人类难于理解其语义。更为糟糕的是C++的编译系统受到C++的复杂性的影响,非常难于编写,即使能够使用的编译器也存在了大量的问题,这些问题大多难于被发现。

           由于本身的复杂性,复杂的C++程序的正确性相当难于保证。也有人提出不支持多线程的原语等缺陷。不过有如此多的知名人士提出了如此多的缺陷,正说明C++被广泛使用和成功。

          c++语言由于过度的复杂性,以及与Unix的文化相抵触,在Unix/Linux领域受到很多著名人士(比如Linux之父Linus Torvalds与著名黑客Eric S. Raymond)的强烈批评与抵制。

     -------------------------------------------         END      -------------------------------------

     

     

    展开全文
  • protobuf C++入门

    千次阅读 2016-07-22 12:29:53
    protobuf C++入门基础
  • C++入门到精通的三本书超经典

    千次下载 热门讨论 2014-04-26 12:36:47
    C++入门到精通的四本书超经典学C++必看之书.初学者先看C++程序设计后看另外三本电子书,免费下载。深度探索C++对象模型封面图More+Effective+C++ Effective C++中文...
  • 绝对经典的C++入门PPT

    2018-10-07 16:35:35
    绝对经典的c++入门课件,介绍了什么是程序,程序设计语言,C++的介绍和简单的程序案例。
  • C++入门基础教程.PDF
  • C++入门课程

    千人学习 2019-12-26 13:10:48
    学这节课的目的: 为软件破解,暴力破解,游戏外挂与反外挂打下坚实基础
  • C++入门基础知识

    千次阅读 2017-06-27 21:10:38
    C++入门基础知识
  • C++入门经典源代码

    2009-06-22 11:23:09
    C++入门经典源代码 C++入门经典源代码 C++入门经典源代码
  • C/C++入门编程-面试题-视频实战(Daozy)

    千人学习 2020-11-27 20:46:30
    《C语言入门到精通》、《C语言编程入门100题》、《C++编程入门到精通》、《C++入门编程100题》、《C/C++课程设计编程实战》、《C/C++面试题视频讲解》。   世上无难事,就怕有懒人。    
  • C++入门必看知识点详解

    千次阅读 2020-04-07 16:13:53
    C++入门 前言:本篇博客主要叙述了C++中一些关键字和函数的规则和用法,知识比较零碎,较为冗余。 本节目录C++入门1.C++关键字2.命名空间3.C++输入&输出4.缺省参数4.1全缺省参数:4.2半缺省参数5.函数重载6.引用...
  • C++入门知识索引 本文作为【C++入门】知识索引: 1.从C到C++ 2.C++类和对象 3.C++ 运算符的重载 4.C++ 继承和派生 5.C++多态 6.C++ 输入输出和文件操作 7.C++ 函数模板&类模板 8.C++标准模板库STL:
  • C++入门教程TXT版

    2010-06-06 02:27:04
    C++入门教程,详细介绍了C++的一些基础,请下载
  • C++入门教程

    2015-06-15 17:19:18
    很好的C++入门教程 -----------------------------------割哥哥哥哥哥哥哥-------------------------------------------------------------------------- http://www.weixueyuan.net/cpp/rumen/1/
  • C++入门经典+习题答案.pdf
  • C++入门经典(第三版).pdfC++入门经典(第三版).pdfC++入门经典(第三版).pdfC++入门经典(第三版).pdfC++入门经典(第三版).pdfC++入门经典(第三版).pdf
  • 小白 C++ 入门并发疯学习路线(书单)

    万次阅读 多人点赞 2018-09-28 21:12:45
    真人就是我自己,这是我的 C++ 学习之路总结。 具体总结前,想先回答一个问题——要不要先学C,再学C++? 我作为小白时疑惑过这个问题,在此给后来的小白和当年的自己一个答案。 个人看法是,学习C++,就直接学习C++...
  • C++入门经典(第3版)

    2012-07-29 20:42:11
    C++入门经典(第3版),学习C++的好工具
  • C++入门之面向对象

    2019-04-28 10:32:42
    C++入门之面向对象——如何调用使用类 普通方法、静态方法的使用。 《C++语言程序设计》 类的调用使用 新建的类的命名空间与主函数的命名空间默认相同,如果不同,则主函数无法调用自定义类 比如: 只需要进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,247
精华内容 13,698
关键字:

c++入门

c++ 订阅