摘要: 为什么C++没有垃圾回收机制?这点跟Java不太一样。 实现一个垃圾回收器会带来额外的空间和时间开销 需要开辟一定的空间保存指针的引用计数和对他们进行标记mark 然后需要单独开辟一个线程在空闲的时候进行free操作 垃圾回收会使得C++不适合进行很多底层的操作。 阅读全文
posted @ 2023-02-22 11:49 小秦同学在上学 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 什么是友元 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员 尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。 友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员 阅读全文
posted @ 2023-02-22 11:40 小秦同学在上学 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 你知道回调函数吗?它的作用? 最重要作用就是解耦 当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数; 回调函数就相当于一个中断处理函数,由系统在符合你设定的条件时自动调用。你需要做三件事:1,声明;2,定义;3,设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数,以便 阅读全文
posted @ 2023-02-22 11:26 小秦同学在上学 阅读(15) 评论(0) 推荐(0) 编辑
摘要: *成员函数里memset(this,0,sizeof(this))会发生什么 void *memset(void *str, int c, size_t n) - 参数 - str -- 指向要填充的内存块。 - c -- 要被设置的值。该值以 int 形式传递,但是函数在填充内存块时是使用该值的无 阅读全文
posted @ 2023-02-22 11:22 小秦同学在上学 阅读(121) 评论(0) 推荐(0) 编辑
摘要: string 是c++标准库里面其中一个,封装了对字符串的操作,实际操作过程我们可以用const char*给string类初始化 a) string转const char* string s = “abc”; const char* c_s = s.c_str(); b) const char* 阅读全文
posted @ 2023-02-22 10:39 小秦同学在上学 阅读(149) 评论(0) 推荐(0) 编辑
摘要: C++中标准库是什么? C++ 标准库可以分为两部分: 标准函数库:由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。 面向对象类库: 这个库是类及其相关函数的集合 输入/输出 I/O、字符串和字符处理、数学、时间、日期和本地化、动态分配、其他、宽字符函数 标准的 C++ I/O 阅读全文
posted @ 2023-02-22 10:36 小秦同学在上学 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 如果有一个空类,它会默认添加哪些函数? 1) Empty(); // 缺省构造函数// 2) Empty( const Empty& ); // 拷贝构造函数// 3) ~Empty(); // 析构函数// 4) Empty& operator=( const Empty& ); // 赋值运算符 阅读全文
posted @ 2023-02-22 10:35 小秦同学在上学 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 你知道strcpy和memcpy的区别是什么吗? char *strcpy(char *dest, const char *src) - 参数: - dest:指向用于存储复制内容的目标数组。 - src -- 要复制的字符串。 void *memcpy(void *str1, const void 阅读全文
posted @ 2023-02-22 10:31 小秦同学在上学 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。很多时候用户可能都不知道进行了哪些转换 C++面向对象的多态特性,就是通过父类的类型实现对子类的封装。 通过隐式转换,你可以直接将一个子类的对象使用父类的类型进行返回。 基本数据类型的转换以取值范围的作为转换基础 隐式转换发生在从小-> 阅读全文
posted @ 2023-02-22 10:27 小秦同学在上学 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 说一下你理解的 ifdef endif代表着什么? 一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见 阅读全文
posted @ 2023-02-22 10:23 小秦同学在上学 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 当程序中有函数重载时,函数的匹配原则和顺序是什么? 名字查找 确定候选函数 寻找最佳匹配 你知道重载运算符吗? 只能重载已有的运算符,而无权发明新的运算符 两种重载方式:成员运算符和非成员运算符 成员运算符比非成员运算符少一个参数 下标运算符、箭头运算符必须是成员运算符; 引入运算符重载,是为了实现 阅读全文
posted @ 2023-02-22 10:18 小秦同学在上学 阅读(12) 评论(0) 推荐(0) 编辑
摘要: cout和printf有什么区别? cout<<是一个函数,cout<<后可以跟不同的类型是因为cout<<已存在针对各种类型数据的重载,所以会自动识别数据的类型。 输出过程会首先将输出字符放入缓冲区,然后输出到屏幕。 cout是有缓冲输出 printf是行缓冲输出,不是无缓冲输出。 阅读全文
posted @ 2023-02-22 10:16 小秦同学在上学 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 1、什么是内存对齐 现代计算机中内存空间都是按照 byte 划分的 理论上讲似乎对任何类型的变量的访问可以从任何地址开始,实际的计算机系统对基本类型数据在内存中存放的位置有限制 会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐 2、为什么要进行内存对齐 处理器在取数 阅读全文
posted @ 2023-02-22 10:10 小秦同学在上学 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 知道C++中的组合吗?它与继承相比有什么优缺点吗? 继承: 继承是Is a 的关系 Student继承Person,则说明Student is a Person。 优点是子类可以重写父类的方法来方便地实现对父类的扩展。 缺点: 父类的内部细节对子类是可见的 子类从父类继承的方法在编译时就确定下来了, 阅读全文
posted @ 2023-02-22 09:42 小秦同学在上学 阅读(31) 评论(0) 推荐(0) 编辑