![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 87
linengcs
Keep Coding, Keep Happy
展开
-
C++——隐式类型转换
先看一下隐式类型转换如何发生吧:我们定义了一个很简单的类,它的构造函数使用了默认参数(),这时main函数里的两句都触发了构造函数的隐式调用很显然,函数需要的是类型的参数,而我们传入一个数据,这个程序能够成功运行,并且成功输出说明隐式调用了构造函数。另外需要注意的是,在对象刚刚定义的时候,使用赋值操作符,调用的是构造函数,而不是运算符这种悄然发生的事情,有时可以带来便利,让你的程序可以继续运行,而更多的会带来很多意想不到的结果,关键字用来避免这样的情况发生c++11中对explicit的解释为指定构造函数原创 2022-12-03 12:02:05 · 1868 阅读 · 2 评论 -
C++11——“=default“和“=delete“函数特性
这些类的特殊成员函数负责创建、初始化、销毁或者拷贝类的对象。 如果程序员没有显示的为类定义某个特殊成员函数,而又需要用到该特殊成员函数时,编译器会地为这个类生成一个默认的特殊成员函数; 而如果程序员显示的定义了某个特殊成员函数,编译器将不会自动为你生成默认的构造函数了,如果还想用默认构造函数,就需要自己手写,如果变量很多的话这将会很麻烦。 c++11标准因此引入了新特性:default函数。程序员只需在函数声明后加上”=default;原创 2022-11-28 22:32:45 · 852 阅读 · 0 评论 -
C++——new和delete关键字
new和delete不是函数,和sizeof一样都是C++定义的关键字,不同的是sizeof在编译时就可以确定其返回值,而new和delete相对复杂示例这里就可以看出new和malloccmalloc申请完空间后不会对内存进行必要的初始化,而new可以new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,即new是类型安全性的操作符;而malloc内存分配成功后返回的是void*,需要通过强制类型转换,将通用类型指针void*转换成所需要的指针new。原创 2022-11-28 21:35:34 · 575 阅读 · 0 评论