C++ (1)

来源:互联网 发布:php接收app上传图片 编辑:程序博客网 时间:2024/05/01 14:13

上课总结的一些。记的一些笔记。

 

C++ is a general purpose programming language that :

   ~is a better C

   ~supports  data abstraction(数据的抽象描述)

   ~supports object-oriented programming(面向对象)

   ~suppots generic programming

 


1   最新的C++标准不提倡.h

     所以改用

              #include<iostream>   

              using namespace std


2  在思考方式的不同

     对同样一个问题:假设一张超市列的购物单,单价以及数量,有小计有总计。在C中,考虑的是一个数组,计算出每行,然后算出总计结果,好的编程风格会调用两个子函数来计算,这样每种物品都是单独计算的。但是实际上,我们看到一张单子,就是一张单子,不care是怎么计算的。所以将这些连同计算方法一起作为一个整体来看待。

    在C++中,是将这两个子函数也作为一个class的一部分(成员函数),而将这些都封装起来。

 

3  变量命名长度受限于编译器
    This_is_a_name  C++风格命名
    ThisIsAName  PASCAL风格
    ......

 

4  reference引用
   本质:一个地址的别名,alternative name.  
   作用:作为函数的参数,作为函数的返回值,某些时候可以作为左值(当返回值是一个地址名称时).
   注意:定义时必须初始化,否则指向一个未知的固定内存单元
   EG:
   int &func(...)
   {
 ...return &a;
   }
   int main()
   {
 ...func() = 3;...
   }

 格式:int &name = a,则name 就是一个和a一样的变量名。

 

5  函数调用的本质是初始化操作
   调用:实参赋值给形参
   返回:返回值赋值给一个匿名单元。。。
   EG: Type &anonymous = return值。在main()中receiver = anonymous....据我理解机制应该是这样。。

 

6  const
   本质:常量,不可改变
   注意:
   const char *pointer = char const *pointer;  表示指针指向的char是常量,内容不变。但是pointer所指向地址可以改变。
   char *const pointer;指针本身是常量,指向地址不变,内容可变。
   const修饰其左边的内容。

  一个const = const or non-const , non-const = non-const.

  本质,一个constant不可以用任何形式改变其值,所以不可以赋值给一个变量。

 

7 new&delete

   其本质是新申请或者释放已经存在的空间,指针还是存在,但是已经野了。。。。
   delete[]  pointer;
   申请数组释放时注意防止内存泄漏
   申请数组时注意pointer指针不能改变,否则无法记录内存地址。。。泄露。

   new一个数组的时候不能显示初始化。
PS:既然不能改变,我觉得干脆直接new一个常量好了。。Type const *pointer = new Type[size]....^_^  不过不知道行不行。。。试试好了。。C++Primer第四版上P166说可以。

 

8  指针本身是long 类型

 

 

 

原创粉丝点击