C++/C#:类Class与结构体Struct的区别
2024-10-19 04:30:15
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。
最新文章
- Hibernate Hql 总结(2)---laoyang
- jQuery中的Ajax - Codeigniter版本
- CentOS7— Redis安装(转和延续)
- [转]在WPF中区别TextBlock和Label
- 细说.NET中的多线程 (六 使用MemoryBarrier,Volatile进行同步)
- linux笔记七---------管道
- 修改webftp,在线文件管理
- 用java发送邮件(黄海已测试通过)
- 一个获取Android手机root权限的程序
- 关于android 双击事件
- page,request,session,application四个域对象的使用及区别
- Java 网络 IO 模型
- [转]XHR简介
- 【网摘】C#中TransactionScope的使用方法和原理
- 【Java并发编程二】Java并发包
- 根据 Power BI Desktop(预览版)中的报表页创建工具提示
- ADO.NET获取数据(DataSet)同时获取表的架构
- swift相关文档
- Oracle SQL部分练习题
- Python 訪问 LinkedIn (API)