首页 > 编程知识 正文

内联函数的作用,构造函数与析构函数的作用

时间:2023-05-03 23:10:42 阅读:38584 作者:932

1 .可以使用对象的生成构造函数创建对象

2 .实例化对象初始化对象的数据成员。 当系统自动调用构造函数时,构造函数可以实现数据成员的初始化

3 .类型转换classtest { public : test (intd=0) { data=d; }保密: int数据; (; void main () { Test t; t=100; //int类型的数据代入对象并隐式转换}在上述代码中,由于以下原因,将int的100代入对象也没有问题。

Test类只有一个数据成员,并且该数据成员与尝试赋值的100具有相同的类型。 分配字符时,字符数据将隐式转换为与Test类中的数据成员相同的类型,从而实现临时对象的结构化。 于是,可以用100制作临时对象。 此时,临时对象具有与t相同的类型,因此将不同类型之间的赋值转换为相同类型进行赋值。 由于临时对象和t都是对象,因此将调用系统的缺省赋值语句

3358www.Sina.com/变量可以分配给对象的原因是变量可以生成注意:,并使用临时对象为对象赋值。 如果无法在不同类型的变量之间生成临时变量,则无法赋值。 示例:我们可以将整形指定给对象,但不能将对象指定给整形。 因为当整形分配给对象时,可以通过某种机制生成临时对象,而相反,(将对象分配给整形)我们找不到生成临时对象的机制但是,通过重载要代入的数据的类型,可以代入临时对象。 ()与代码对应,以下相同) ) )。

这里的机制是类对象只有一个数据成员,可以通过显示或隐式类型转换将分配给类的数据分配给该数据成员,也可以创建正好一个对象如果一个构造函数也只接受一个参数,则可以大致理解为,如果不能从该数据创建临时对象,则不能进行类型变换

的密钥是隐式转换

如果在构造函数之前添加关键字explicit,则隐式类型转换临时对象

classtest (公共: explicit test ) intd=0)//) data=d; }重载}public: operator int ()//int时,设置整形变量({ return data; }保密: int数据; (; void main () { Test t; //t=100; //无法隐式转换的t=(test ) 100; int value; value=t; 相当于value=t.data}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。