`
tmj_159
  • 浏览: 707051 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

C++ 学习笔记 (C++概述)

阅读更多

     从今天开始好好学习下C++!

     注:1.因为自己有JAVA的编程经验,所以只注意自己比较模糊的东西

            2.因为完全跟着书来学习的,所以文章里面的东西基本全部来自书中。

 

    自学资料C++ Primer 第三版中文版

    自学工具Eclipse for C++

    编译工具MinGW

 

    环境准备

    安装MinGW,设置环境变量Path(具体和JAVA一样),然后打开Eclipse new 一个Excutable类型的项目,就可以运行了。网上有说道如果new 一个makefile类型的项目需要去MinGW安装目录下\bin 将mingw32-make.exe复制成make.exe即可。

   

    开学吧!

    第一篇 C++概述

    1.C++ 标准库中定义的名字,如cout, 不能在程序中直接使用,除非在预处理指示符:

    #include <iostream>

     后面加上

     using namespace std;

     C++标准库中的名字都是在一个称作std的名字中声明的,这些名字在我们程序文本文件中不可见,除非我们显示的使用它们可见。

 

    2. C++定义一组内置的基本数据类型:整数类型(int),浮点类型(float),字符类型(*char),布尔类型(boolean),每种类型都与C++的一个关键字相关联。

        C++还提供了一组扩展的基本数据类型:字符串(string),复数(complex member),向量(vector),和列表(list)。

 

    3. 头文件通过Include预处理指示符而成为我们程序的一部分。它有两种格式

        #include <some_file.h>

        #include "my_file.h"

       如果文件名用尖括号括起来 ,表明这个文件是一个工程或标准头文件,查找过程会检查预定义的目录。

       如果用双引号括起来,表明该文件是用户提供的文件,查找该文件时将从当前文件目录开始。

 

   4.条件指示符#ifndef防止头文件的重复处理

      #ifndef BOOKSTORE_H

      #define BOOKSTORE_H

      #endif

   

    5.#ifdef指示符常被用来判断一个预处理器常量是否已经被定义,以便有条件地包含程序代码。

 

    6.编译C++程序时,编译器自动定义了一个预处理的名字__cplusplus。因此我们可以根据它来判断程序是否是C++程序,以便有条件的包含一些代码。例如:

        #ifdef __cplusplus

          extern "C"

        #endif

       在编译标准C时,编译器将自动定义名字__STDC__,__cplusplus 和 __STDC__不会被同时定义。

 

    7.C++的输入输出功能由输入输出流(iostream)库提供。使用该库的程序必须包含相关的头文件:

       #include <iostream>

      cout << "out"<<endl;

      int a;

      cin >> a;

      为了打开文件的输入输出流,除了包含iostream 之外还要包含fstream头文件。

      #include <iostream>

      #include <fstream>

      #include <string>

 

     int main(){

          ofstream outfile("out_file");          ifstream infile("in_file");

          if ( ! infile){

               cerr << "error : unable to open input file!\n";

               return -1;

          }

          if( ! outfile ) {

             cerr << "error : unable to open output file ! \n ";

              return -2;

           }

           string word;

           while(infile >> word){

                 outfile << word << ' ' ;

            }

            return 0;

    }

 

      8. C++中数组下标从0开始,同JAVA

 

      9. C++支持用指针类型来存放对象的内存地址值。指针的主要作用是管理和操纵动态分配的内存。

          C++预定义了专门取地址的操作符&,当我们把它应用在一个对象前时,返回的是对象的地址。

 

      10. 静态和动态内存分配的两个区别是:

          静态对象是有名字的变量,我们可以直接对其操作。而动态对象是没有名字的变量,我们通过指针间接的对它进行操作。

          静态对象的分配和释放由编译器自动处理,动态对象的的分配和释放,必须由程序员显示的管理,相对来说比较容易出错,它通过new 和 delete 两个表达式来完成。

 

       11. 由于C++不允许成员函数和数据成员共享一个名字,所以在这样的情况下,一般习惯在数据成员名字前加一个下划线(_)。

 

        12.双冒号(::),是域操作符。

    

        13.异常处理机制

            异常由(throw)抛出。异常被抛出时,正常程序被挂起,知道异常被处理完毕。

             异常的处理由 catch子句来执行。catch子句和try相关联。

        

          14.命名空间(namespace)机制允许我们封装名字,一般情况来说,只有我们希望自己的代码被外部软件开发部门使用时,才使用命名空间。

 

          15.由于C++内置的数组不支持容器抽象的语意,向量是一个类模板。vector数组可以再运行时动态的增长。使用时必须包括vector头文件。类型JAVA的ArrayList :)

            定义向量:

            #include <vector>

           vector<int> ivec; //空的

            vector<int> ivec (10);

            vector<string> svec (10);

            遍历:

            1) 通过下标遍历

            int size=10;

             vector<int> ivec(10);

            for(int ix=0;ix<size;++ix){

                   ivec[ix]=ix;

             }

            2) 通过迭代器遍历

            vector<int>::iterator iter=ivec.begin();

             for(int ix=0;iter!=ievc.end();++ix,++iter){

                  *iter = ix;

             }

           算法:

           要使用泛型算法,必须包含algorithm头文件,基本的算法有,搜索,分类,删除,算术,生成 ,关系等。PS:类似java中的Collections类

分享到:
评论

相关推荐

    c++学习笔记精华版

    ### C++ 学习笔记精华版 #### 一、C++ 语言概述 **1、历史背景** - **C++ 的江湖地位** - Java、C、C++、Python、C# 是当前主流的编程语言之一,而 C++ 在这些语言中以其高效性和灵活性著称。 - **C++ 之父 ...

    【C++学习笔记】01_C++概述

    "C++概述和面向对象程序设计" C++概述 C++是一门优秀的通用程序设计语言,它是以C语言为基础扩充、发展起来的。C++语言保存了C语言的紧凑、灵活、搞笑和移植性好的优点,又吸收了其他程序设计语言的优秀特质。C++...

    c++学习笔记(个人学习时做的笔记)

    【C++学习笔记概述】 C++是一门强大的编程语言,其在C语言的基础上进行了扩展,引入了许多现代化的特性。这份笔记主要涵盖了C++的基础知识,包括C++11和C++17的新特性,旨在帮助初学者理解C++的核心概念。 ### C++...

    千锋C++笔记.zip

    1. **C++概述**:C++是C语言的增强版,由Bjarne Stroustrup于1983年在AT&T贝尔实验室开发。它支持面向对象编程、泛型编程和过程化编程,广泛应用于系统软件、应用软件、游戏开发、设备驱动程序等领域。 2. **基本...

    Visual C++程序设计学习笔记.rar

    一、Visual C++概述 Visual C++是微软公司推出的集成开发环境(IDE),支持C++语言,它集成了编译器、调试器和丰富的资源编辑器,使得开发者能够高效地编写、测试和调试C++应用程序。Visual C++不仅支持传统的Win32 ...

    C++学习笔记

    【C++学习笔记】这篇笔记主要涵盖了C++的基础知识,包括了从编译环境的配置到高级特性如面向对象编程的全面介绍。笔记是作者在学习传智播客的C++课程后整理加工而成,旨在为其他学习者提供帮助,并且承诺会随着学习...

    C++读书笔记

    以下是对C++编程语言的一些关键知识点的概述,这些内容可能涵盖在读书笔记中。 1. **基础语法**:C++是基于C语言的,因此基础语法包括变量、数据类型(如int, float, char等)、运算符(算术、比较、逻辑、位操作等...

    C++学习笔记(快速入门C++)

    ### C++学习笔记知识点梳理 #### 一、开始 C++是一种高级编程语言,它是在C语言的基础上发展起来的,并且增加了面向对象编程的支持。学习C++的第一步是从熟悉其基本语法开始,然后逐渐深入理解面向对象编程的概念...

    c++学习笔记。干活!!!

    1. C++概述:C++是在C语言的基础上发展起来的,它增加了面向对象编程的能力。C++保留了C语言的许多特性,同时引入了类、继承、多态等新的概念。 2. 头文件使用:在C++中使用头文件通常有两种方法,一种是使用尖括号...

    C++primer笔记

    ### C++ Primer 笔记知识点概述 #### 1. C++程序结构与文件类型 - **文件命名规范**:在C++中,程序文件通常包括两部分:文件名和文件后缀。文件后缀用于区分文件类型。 - **头文件**:一般以`.h`后缀结尾,这类...

    C++上课笔记(初学者适用)

    ### 一、C++概述 C++是在C语言的基础上发展起来的,它引入了类和对象的概念,支持面向对象编程。C++同时支持过程化编程和面向对象编程,因此也被称为多范式语言。 ### 二、C++基本语法 1. **变量与数据类型**:...

    c++学习笔记

    ### C++学习笔记知识点概述 #### 一、C++程序结构与命名规范 - **文件命名规则**:C++程序的文件通常分为两类,一类是**头文件**(以`.h`作为后缀),另一类是**源文件**(以`.cpp`作为后缀)。 - **头文件**用于...

    C++&C学习笔记

    ### C++&C学习笔记知识点概览 #### 类与数据抽象 - **概念**:类是一种用户自定义的数据类型,它将数据(属性)和作用于数据上的操作(方法)封装在一起,从而实现了数据的抽象。 - **特点**:与C语言中的结构体...

    C++Primer 笔记(不完整版)

    C++ Primer 是一本深入学习C++语言的经典教材,这份笔记虽然不完整,但涵盖了书本的前十个章节,提供了关于C++基础语法和核心概念的概述。 1. **变量与初始化** - C++中未初始化的变量使用是一个潜在的问题,因为...

    C++机器学习笔记.md

    ### C++机器学习笔记知识点详解 #### 一、引言 C++作为一种高效且功能强大的编程语言,在机器学习领域有着广泛的应用。通过使用C++,开发者可以深入理解各种机器学习算法的工作原理,并能够将这些算法高效地应用于...

    《C++ Primer》学习笔记(25)IO库

    ### 《C++ Primer》学习笔记(25):深入理解C++ IO库 #### 一、概述 本文档基于《C++ Primer》中的IO库章节,重点介绍C++标准库中与输入输出相关的概念和技术。主要内容包括不同IO操作之间一致性的实现方式、基本...

    C++ 核心编程 学习笔记

    ### C++核心编程学习笔记知识点概述 #### 一、内存分区模型 在C++中,内存被分为四个主要部分:代码区、全局区、栈区和堆区。 1. **代码区**: - **作用**:存放函数体的二进制代码。 - **特点**:由操作系统...

    《C++ Primer》学习笔记(27)顺序容器

    ### 《C++ Primer》学习笔记(27)顺序容器 #### 9.1 顺序容器概述 在C++中,顺序容器是一类用于存储数据的容器,其中元素的位置依赖于其添加到容器中的顺序。这与关联容器形成了对比,关联容器中的元素位置是由其...

Global site tag (gtag.js) - Google Analytics