- 博客(10)
- 收藏
- 关注
原创 C++类型补充
在直接进行a=x的话是行不通的,这时会调用构造函数创造一个不具名的对象,把x的值给不具名对象,再用不具名对象给a赋值。我们只能访问的是对象,而不是类型,只能给对象空间。打印的是20.这里是逗号表达式,取后面的值,因为y已经有初始值了,所以会将y的值赋给x,所以打印出来就是20.在构造函数和拷贝构造函数中的冒号代表初始化,但在对象的其他成员函数不能再二次构建。只有构造函数,拷贝构造函数可以用冒号进行初始化,普通函数是不可以的。这里类型强转必须是单参,但是构建不具名对象不要求必须是单参。
2024-07-24 20:49:13
137
原创 可见性生存期、拷贝构造函数与声明和定义的区别
使这个方法既可以适用于普通对象也可以适用于常对象,使这个方法的普适性增加。当这个函数只读不写的时候就可以把函数定义成常方法。声明是用来告诉编译器变量的名称和类型,而不分配内存。例如:语句 extern int Value;表示 Value 在别的文件中已经定义,提示编译器遇到此变量时在其它模块中寻找其定义。语句 extern int b = 10;表示定义了变量 b,这一点需要注意。注意:即使是 extern ,如果给变量赋值了,就是定义了。定义是为了给变量分配内存,可以为变量赋初值。
2024-07-23 21:47:19
815
原创 C++类的设计与成员 数据
访问限定符有三种,public(公共的),private(私有的),protected(保护的)。第一种说明的成员能从外部进行访问,另外两种说明的成员不能从外部进行访问。每种说明符可在类体中使用 多次。它们的作用域是从该说明符出现开始到下一个说明符之前或类体结束之前结束。如果在类体起始点无访问说明符,系统默认定义为私有(private)(struct默认为公有)。函数在类内声明和定义和在类内 声明类外定义是有一点区别的。在类内声明和定义系统会默认你是内联函数,类外定义不是内联。
2024-07-19 19:23:58
172
原创 C++基础入门(6)
decltype是识别类型,用于定义,和sizeof相当,但不用来计算大小,也不用像auto一样定义初始值。它是对括号里的表达式推导。这里x是10,因为推导在编译时进行,不执行代码,只是推导出类型为int。如果表达式返回的是参与运算的值本身,是引用类型类型的名字和表达式中名字相一致如果返回的是一个亡值,就是引用,如果是一个具体存在的值,就是它本来的值。
2024-07-18 20:12:34
188
原创 C++基础入门(4)
两者 extern 和 extern"C"有点区别:extren 在C和C++中,都表示声明语句的意思;而 extern"C"是按C语言方式去编译文件;extern"C"只能在C++文件使用,extern在C和C++都可以使用在 函数前面加上extern"C":函数名以C的方式进行修饰约定规则extern"C++":函数名以C++的方式进行修饰约定规则。
2024-07-16 20:11:59
962
原创 C++入门(3)inline函数与缺省参数
缺省参数可以有多个,但所有的缺省参数必须放在参数表右侧,即先定义所有的非缺省参数,再定义缺省参数。一般情况下,函数调用时的实参个数与形参相同,但为了更方便地 使用函数,C++也允许定义具有缺省参数的函数,这种函数调用时,实参个数可以与形参不相同。当函数功能简单,使用频率很高,为了提高效率,直接将函数的代码镶嵌到程序中。这样的函数在调用时,对于缺省参数,可以给出实参值,也可以不给出参数值。当程序执行函数调用时,系统要建立栈空间,保护现场,传递参数以及控制程序执行的转移等等,这些工作需要系统时间和空间的开销。
2024-07-15 11:13:44
529
原创 C++基础入门(1)
初始化概念后直接跟{},统一进行初始化。()的初始化与{}的初始化区别在这段代码运行结果中不会出现sum这个变量,但会出现num这个变量。sum会被认为是函数声明。{}具有更强的指向性,对于程序要求会更加严格。这段代码可以编译通过,只是b的值为12.而这段代码会报错,因为{}具有更强的指向性。
2024-05-20 20:36:17
1151
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人