cおよびc ++の知識ポイントについては、これらを理解する必要があります(2)


これがC ++の基礎を学ぶコースですが、ちなみにC言語を復習し、ちょっとした知識ポイントをまとめました。


cおよびc ++の知識ポイントについては、これらを理解する必要があります(2)

1。

C ++メモリは4つの領域に分かれています

  //  代码区  存放函数体的二进制代码

  //  全局区  存放全局变量和静态变量以及常量

  //  栈区     编译器自动分配 存放函数参数值 局部变量

  //  堆区     程序员分配和释放,程序员不释放,程序结束时操作系统回收

  //  意义: 不同区域存放的数据,赋予不同的生命中秋,给予更大的灵活编程 
  // 代码区  (程序运行前就有)存放二进制机器指令 特点 : 共享、只读

  // 全局区  (程序运行前就有)存放全局变量和静态变量以及常量  该区的数据在程序结束后,由操作系统释放  

  // 在全局区(静态变量 static关键字  常量(字符串常量和const 修饰的全局变量))   不在全局区的数据(局部常量)

  // 栈区   (程序运行后才有)不要返回局部变量的地址  

  // 堆区  (程序运行后才有)(程序员手动开辟和释放(delete))利用new关键字,将数据开辟到堆区返回的直接是地址 

   int * p = new int (10) ;  // 指针本质在栈区,其数据在堆区  

2。

 new                   // 返回的是该数据类型的指针  
 int * p=new int(10) ; // 创建了一个new型为10的变量地址  (释放 delete p;) 

3。

 int * array = nem int[10]; 
// 创建了一个变量为整型个数为10的数组,他的首地址给了array (释放数组  delete[] arr;)

4。

// 引用:就是给变量起别名  

// 语法:数据类型 &别名=原名   对别名进行操作等于对原名的数据进行操作  
    
   int a=10;

   int & b = a; b = 20;  // 那么 a也为20

5。

  // 引用的注意事项  

  // 1) 引用的时候必须要给予初始化  
      
    int & b = a; (引用过程给予初始化,只有这一种写法) 

  // 2) 引用一旦初始化后,不可更改  

6。

 // 引用也会使得形参修饰实参  
   void my3(int &a,int &b)  //  有两种解决办法  指针 和 引用  

 // 注意事项:

 //  1 )不要返回局部变量的引用
      
     int &test()
   {
      int a=10;return a;
   } 

 //  2 )函数的调用可以作为左值 

     int &ref=test();

     test()=100;

     cout << ref << endl; 

     ref = 100;

7。

 //引用的本质是一个指针常量  

  int a=10;

  int &b = a; // 相当于 int * const  b = &a;  这也就是为什么引用不可修改,因为指针常量的指针指                  向不可修改(b中保存着a的地址)

   cout << a << b << endl; a = b = 10;

 // b = 20解引用  也就是*b = 20;

8。

 // 常量引用  
     
 // 引用的两种写法
 // 1 ) 
     int a=10;
         
     int & b = a  // (必须为名称,不能为10);

 // 2) 
    const int & b = 10;    // 第二种相当于编译器系统设置了一个变量
        
    int temp = 10;
       
    const int  &b = temp;

    b = 20   // (这是错误的,因为加上const 之后变为只读不可修改状态)

9。

 // 函数默认参数 优先用户自定义的 

 int fun(int a,int b=10,int c=30)
 { 
     return a+b+c;
 }

 main
 { 
     cout << fun (10 , 30 , 30 ) ;   
 }     
 // 70; 

 // 当某个位置有了默认参数,那么他后边都必须是默认参数(例如 b为默认参数,那么 c 也必须是默认参数)

10。

// 声明和实现 只能有一个有默认参数 
 
 int fun (int a = 10,int b = 30); 

 int fun(int a , int b)
 {
     return a + b;
 } 
  
// 40

11。

// 占位参数(只有函数类型,没有名字) 
 void fun ( int a , int)
 {
     cout << ” abc ” ; 
 } 

 // 引用时fun(10 , 10)  占位参数还可以有默认参数

void fun(int a , int  = 10) 
{ 
    return “ abc ” ;  
}  

// 引用时 fun( 10 )   

12。

 // 函数重载(函数名可以相同) 

 // 条件 : 同一个作用域下  函数名称相同  函数的参数类型不同 或者 个数不同或者顺序不同 

 // 注意:函数的返回值不可以作为函数重载的条件,如下 
    void fun ( ) 
    void fun(int a)   
    void fun(double b)  

13。

c ++オブジェクト指向機能のカプセル化継承ポリモーフィズムすべてがすべてオブジェクト

14。

 c++ class aa

 {

 //访问权限

 //属性(变量)

 //行为(函数)

 }

15。

属性と動作の両方をメンバー属性=属性と呼びます

16。

 public     // 公共权限  成员  类内可以访问  类外可以访问

 Protected  // 保护权限  成员  类内可以访问  类外不可以访问(儿子可以访问父亲的保护内容)

 Private    // 私有权限  成员  类内可以访问 类外不可以访问(儿子不可以访问父亲私有权限)

17。

struct  class  // 区别在于  默认访问权限不同  
    
struct // 默认为公共 public
    
class  // 默认为私有 private   

つづく...

ご不明な点がございましたら、メッセージを残してください

hexoブログ:https:www.ho-brother.ltd
元の記事を5件公開しました Likes0 訪問数45

おすすめ

転載: blog.csdn.net/qq_44955863/article/details/105596169