c++

  ::  指定所在命名空间

1.cout << ""  << book   cout输出  先字符串 然后输出book内存区域中的值;

2. 函数组成:返回类型,函数名,参数表,函数体, 前三部分称为函数原型

3. 扩展基本数据类型,字符串string, 复数complex number,向量vector, 列表list

  #include<string>   string c = "gett";

  #include<vector> vector<string> c {20}; 包含20个字符串类型的元素

 

4. 预处理器指示符,  条件指示符#ifndef BOOK_H, 检查在前面是否已经定义, 没有定义,指示符为真,

              #define   代码    #endif 被执行;

5. c++ 使用库 c开头,去掉后缀 .h    

6. 文件输入输出 #include<fstream>    

7. 对象的动态分配 

  int *pint = new int {1024}; 分配一个没有名字的int类型对象,初始值1024;返回对象在内存中的地址,这个地址被用来初始化指针对象pint;对于动态分配的内存,唯一的访问方式是通过指针间接访问;

  int *pia = new int [4]; 分配一个含有四个整数的数组,pia拥有第一个元素的地址

  必须显示的释放这些内存

  delete pint;删除单个   delete [] pia 删除一个对象数组;

8. 基于对象设计类

  class classname{

  public ://公共操作

  private://私有实现  };

  操作称为成员函数或方法

  使用俩个成员访问操作符,可以调用一个有名字的成员函数; 用于类对象(.)  类对象指针的(->)

  数据成员名字前面加一个下划线(_) 

  函数重载,多个相同名字的函数,参数列表必须不同:参数类型或数目不同

  被声明为static 的数据成语是一类特殊的共享数据成语,无论定义了多少个,静态数据成员在程序中只有一份;

  在类体外定义成语函数,语法区别需要指出成语函数属于哪个类,通过类域操作符实现  ::  双冒号;

  析构函数,每个类对象在被程序最后一次使用之后,它的析构函数会自动被调用, 在类的名字前加 (~)来标识;析构函数会释放在类对象使用和构造过程所获得的资源;

  protected保护级别,保护区内的数据成员和成员函数,不提供给一般的程序,只提供给派生类;

  非公有的成员声明,希望防止派生类直接访问某个成员,声明private;如果确信某个成员提供了派生类需要直接访问的操作或数据存储,而通过这个成员,派生类的实现会更有效,声明protected;

  为了把一个类设计成基类,找出类型相关的成员函数,标记为virtual(虚拟的);

  对于一个非虚拟函数的调用,编译器在编译时刻选择被调用的函数,虚拟函数调用 的决定要等到运行时刻;

  class IntArrayRC :  public IntArray  冒号定义了IntArrayRC 是从IntArray派生而来的,public表明派生类共享基类的公有接口

  使用命名空间,namespace Cplus_Pri{

          class ..{};   class.. {};  } 

  使用限定修饰名字符格式  namespace_identifier :: entity_name  

  名字空间别名允许一个可替代,短的  

  

  using 指示符,使名字空间内的所有声明都可见 ;  允许使名字空间中单个声明可见,

  

 

9.  数组类是C++标准库一部分,叫 向量vector;  向量是一个类模板 ; vector数组可以在运行时刻动态增长(向现有的数组元素复制,插入附加元素);作为独立的泛型算法被提供;

  vectot<int>  ivec(10);   包含10个整型对象的向量

  vector<string> svec(10);

  #include<vector> 

  vector<int> vec; 空的vector;   const int size =8; size为8的vector;   

10. extern 声明   extern string filename;   extern 对象类型 名字;  声明不是定义,不会引起内存分配;

  如果一个变量是在全局域内定义的,系统提供初始值0;

  在局部与定义的或new表达式动态分配的, 这些对象称为未初始化的;不是没有值,而是它的值是未定义的;

  显式语法  int v= 12;  string pro = "hell";

  隐士语法 int v(12);   string pro ("hell");

  每种内置数据类型都支持一种特殊的构造函数,将对象初始化为0

  int v = init();  double d = double();    vector<int>  v(10);

11. c++ 空类型指针(void*) , 可以被任何数据指针类型的地址赋值(函数指针不能赋值给它);

  解引用操作符*   来间接读写

  引用类型由类型标识符和一个取地址操作符来定义,引用必须被初始化;   int v=111; int &refV = i; 

  引用必须总是指向一个对象,如果一个引用给另一个引用赋值,改变的是被引用的对象而不是引用本身;

 

posted @ 2018-08-31 18:06  清风拂山岗li  阅读(171)  评论(0编辑  收藏  举报