zoukankan      html  css  js  c++  java
  • C++/C#:类Class与结构体Struct的区别

    C++中:

    默认的访问控制、继承访问权限不同:struct时public的,class时 private的;

    其它基本一样。

    C#中:

    struct是值类型,class是引用类型的;

    struct StructA

    {

      int  id ;

    }

    class ClassA

    {

      int  id ;

    }

    StructA  A ;          // 在栈上新建了一个A的实例

    ClassA   A ;          // 声明了一个A的引用,没有新建任何实例(此时A = null,相当于C++中 ClassA*  A ;)

    ClassA  A = new ClassA() ;  // 在堆上新建一个A的实例,并在栈上声明一个指向它的引用

    注1:C#函数1等价于C++函数1(而非C++函数2)、C#函数2等价于C++函数2

    C# 函数1 :void SetId_666(ClassA a)  { a.id = 666 ; }

    C++函数1:void SetId_666(ClassA* a)  { a->id = 666 ; }

    C# 函数2 :void SetId_666(StructA a)  { a.id = 666 ; }      

    C++函数2:void SetId_666(ClassA a)  { a.id = 666 ; }

    注2:C#中与C++中类class行为更接近的是结构体struct,而非类class。

      

      

  • 相关阅读:
    《SeleniumBasic 3.141.0.0
    《SeleniumBasic 3.141.0.0
    《SeleniumBasic 3.141.0.0
    MQ详解及四大MQ对比
    Locust的使用
    pytest测试框进阶(二)
    pytest测试框进阶(一)
    pytest测试框架简介(二)
    pytest测试框架简介(一)
    弱网测试简介
  • 原文地址:https://www.cnblogs.com/dhqy/p/8405467.html
Copyright © 2011-2022 走看看