A. c语言中的构造函数和析构函数的异同点
构造函数是一种用于创建对象的特殊函数,当创建对象是,系统自动调用构造函数,不能在程序中直接调用.
构造函数名与类名相同,一个类可以拥有多个构造函数(重载),构造函数可以有任意类型的参数,但不能具有返回类型!
构造函数的作用是:为对象分配空间;对数据成员赋初值;请求起他资源.
析构函数作用是清除对象,释放内存等
B. string在c语言中是什么意思
string在c语言中的意思是System.Char对象的有序集合,用于表示字符串。
String就是C等编程语言中的字符串,用双引号引起来的几个字符。
在java、C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。String对象是System.Char对象的有序集合,用于表示字符串。String对象的值是该有序集合的内容,并且该值是不可变的。
可以使用以下方法之一来创建string对象:
通过给String变量指定一个字符串。
通过使用String类构造函数。
通过使用字符串串联运算符(+)。
通过检索属性或调用一个返回字符串的方法。
通过格式化方法来转换一个值或对象为它的字符串表示形式。
C. 在C语言中malloc,free,new,del,
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。
2, 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。
3,因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
4,C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存
new 是个操作符,和什么"+","-","="...有一样的地位
简单的说:
malloc,free是c的函数,new,delete是c++的运算符
此外,new是强制类型的,malloc不是,需要类型转换
当然还有很多不同
new 可以调用构造函数在声明的时候初始化
malloc只是分配空间,需要在其他地方初始化
而delete不仅会释放空间,在释放前会调用析构函数
而且malloc需要指定分配空间大小, 而new是自动计算的