
c++
kkk_皮蛋
这个作者很懒,什么都没留下…
展开
-
c++常量类型
在C++中,常量的定义使用const。由于常量的值在程序运行过程中不能被改变,因此,定义或说明常量时必须对其进行初始化。常量包含内置类型常量、对象类型常量(常量对象)、引用类型常量(常量引用)、常量对象成员(包括常量成员函数和常量数据成员)和指针常量(常量指针)等。本节介绍常量对象、常量引用、常量成员。原创 2024-04-16 14:35:08 · 485 阅读 · 0 评论 -
c++友元
类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,而其他函数是无法访问类的私有成员的。但有时这种限制太严格,不适合特定的编程问题。C++提供另一种访问途径-友元。友元有3种:●友元函数●友元成员函数●友元类对于一个类而言,它的友元虽然不是该类的成员函数,但是可以访问该类的私有成员。原创 2024-04-16 14:25:27 · 348 阅读 · 0 评论 -
c++对象指针
对象指针在使用之前必须先进行初始化。可以让它指向一个已定义的对象,也可以用new运算符动态建立堆对象。原创 2024-04-02 21:45:01 · 422 阅读 · 0 评论 -
c++对象数组
定义对象数组、使用对象数组的方法与基本数据类型相似,因为类本质上也是一种数据类型。在定义对象数组时,系统不仅为对象数组分配适合的内存空间,以存放数组中的每个对象,而且还会为每个对象自动调用匹配的构造函数完成数组内每个对象的初始化工作,但数组结束时会自动调用每个对象的析构函数。局部变量(栈中)的数组,构造是从0下标开始往后进行,而析构是从后往前进。总结:数组中的每个对象都自动调用构造函数和析构函数。原创 2024-04-02 21:42:28 · 248 阅读 · 0 评论 -
C++析构函数
(5)如果没有定义析构函数,系统会自动生成一个默认的析构函数,这个析构函数不做任何事情。当对象的生存期结束时,系统就会自动执行析构函数清除其数据成员所分配的内存空间。(3)一个类有且仅有一个析构函数,必须为public。(4)在对象的生存期结束时,由系统自动调用析构函数。(2)析构函数没有参数、没有返回值,不能重载。(1)析构函数名是由“~”加类名组成的。//没有返回值,没有参数。原创 2024-04-01 20:01:27 · 174 阅读 · 0 评论 -
C++构造函数
构造函数是一种特殊的成员函数,专门用于构造新对象,并把数据赋值给它的成员。类内实现:类名(参数列表)函数体;类外实现:类名::类名(形参列表)函数体;原创 2024-03-27 20:04:24 · 168 阅读 · 0 评论 -
C++类的定义
类的定义格式如下:class 类名private:成员属性或成员函数protected:成员属性或成员函数public:成员属性或成员函数注:(1)class是声明类的关键字,class后跟类名。类名一般首字母大写。(2)类包括成员属性和成员函数。成员属性代表对象的属性;成员函数实现对象的行为。(3)private、protected和public关键字称为访问权限符,它规定了类中成员的访问属性。这3个关键字可以按任意顺序出现。默认时为私有的(private)。原创 2024-03-26 22:45:46 · 331 阅读 · 0 评论 -
c++编译时求值
通常情况,函数无法在编译时求值,因此也就不能在常量表达式中被使用。但通过将函数指定为constexpr,就能向编译器传递这样的信息,即,"如果调用函数时是用常量作为实参,则函数应该能用在常量表达式中"即在编译时求值(12.1.6 constexpr函数)。2.不能有局部变量,也就不能有循环(循环一定需要循环因子变量);//错误,n是变量,无法在编译时求值。//合法,Fac(5)在编译时求值。原创 2024-03-25 16:37:16 · 228 阅读 · 0 评论 -
c++列表初始化
初始化就是对象在创建时被赋值。//X表示类型,a1对象名,v初始值X a1{v};X a2 = {v};X a3 = v;X a4(v);第一种 X a1{v};是C++11提出的,在所有场景中都能使用,强烈建议大家使用。使用{}的初始化称为列表初始化。它还能防止窄化(收缩)转换。窄化(收缩)转换是指数据由宽变窄或者出现数据丢失的情况。如下代码//可以,但有警告//可能数据丢失//error,收缩转换//错误,收缩转换//可以//可以//可以//错误,收缩转换。原创 2024-03-25 16:36:20 · 880 阅读 · 0 评论 -
c++new和delete
new是在堆区申请一块连续的内存空间,如果申请成功,则返回内存指针;如果申请失败,则返回NULL。new申请内存空间的过程,通常称为new一个对象。与 malloc()相比:1.new是关键字,不需要引用头文件(malloc需要引用stdlib.h或者malloc.h)2.new创建动态对象时会自动调用对象的构造函数;3.new能够根据初始化列表中的值进行初始化。下面介绍new运算符常见的几种用法。原创 2024-03-23 15:00:00 · 369 阅读 · 0 评论 -
C++string类
s1 = "趣字节,有趣的编程!!!//第一种方式,字符串赋值string s2 = "今天,好好学习了吗?//第二种方式,字符串初始化string s3{"你学废了吗?"};//第三种方式 ,用字符串构造stringreturn 0;第一种方式先定义了string变量s1,再为string变量s1赋值;第二种方式直接使用“=”为string变量s2赋值;原创 2024-03-23 10:30:00 · 274 阅读 · 0 评论 -
C++内联函数
当调用一个函数时,程序就会跳转到该函数,函数执行完毕后,程序又返回到原来调用该函数的位置的下一句。函数的调用也需要花时间,C++中对于功能简单、规模小、使用频繁的函数,可以将其设置为内联函数。内联函数(inline function)的定义和调用和普通函数相同,但C++对它们的处理方式不一样。如果一个函数被定义为内联函数,在编译过程中,C++将用内联函数程序代码替换对它的调用。原创 2024-03-22 20:23:52 · 195 阅读 · 0 评论 -
c++函数重载
让您能够使用多个同名的函数,"多态"指的是有多种形式,通常使用函数重载。函数重载的关键是函数的参数列表--也称为函数的特征标。C++允许定义同名的函数,前提是它们的参数列表(特征标)不同。参数数目或参数类型不同则参数列表(特征标)不同。求2个或3个整数的和,求2个或3个双精度浮点数的和。原创 2024-03-22 20:20:46 · 140 阅读 · 0 评论