这个offer你吃定了!C++「面试真题」及基本知识点总结

2024年Android最全C++基础知识总结,2024Android大厂高频面试题 由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远! 阅读详情

自闭型小编。对于前几篇文章,表示很抱歉。小编今后一定实事求是的做好每一篇文章!

  1. 结构体和共同体的区别。
    定义:

结构体struct:把不同类型的数据组合成一个整体,自定义类型。

共同体union:使几个不同类型的变量共同占用一段内存。

地址:

struct和union都有内存对齐,结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。

关于内存对齐,先让我们看四个重要的基本概念:

1.数据类型自身的对齐值: 对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。

2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。

3.指定对齐值:#pragma pack(n),n=1,2,4,8,16改变系统的对齐系数

4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。

常见数据类型及其长度:

注意long int和int一样是4byte,long double和double一样是8byte。(关于long double,ANSI C标准规定了double变量存储为 IEEE 64 位(8 个字节)浮点数值,但并未规定long double的确切精度。所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或16字节。)

在标准c++中,int的定义长度要依靠你的机器的字长,也就是说,如果你的机器是32位的,int的长度为32位,如果你的机器是64位的,那么int的标准长度就是64位。经测试,在64位操作系统下,int的长度还是32位的。

在这里插入图片描述

从上面的一段文字中,我们可以看出,首先根据结构体内部成员的自身对齐值得到结构体的自身对齐值(内部成员最大的长度),如果没有修改系统设定的默认补齐长度4的话,取较小的进行内存补齐。

结构体struct:不同之处,stuct里每个成员都有自己独立的地址。sizeof(struct)是内存对齐后所有成员长度的加和。

共同体union:当共同体中存入新的数据后,原有的成员就失去了作用,新的数据被写到union的地址中。sizeof(union)是最长的数据成员的长度。

总结:

struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成员, 而struct的所有成员都存在。在struct中,各成员都占有自己的内存空间,它们是同时存在的。一个struct变量的总长度等于所有成员长度之和。在Union中,所有成员不能同时占用它的内存空间,它们不能同时存在。Union变量的长度等于最长的成员的长度。对于union的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于struct的不同成员赋值是互不影响的。

2.static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗。
static的作用:

· 对变量:

1.局部变量:

在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。

1)内存中的位置:静态存储区

2)初始化:局部的静态变量只能被初始化一次,且C中不可以用变量对其初始化,而C++可以用变量对其初始化。(详见:http://www.cnblogs.com/novice-dxx/p/7094690.html)

3)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

注:当static用来修饰局部变量的时候,它就改变了局部变量的存储位置(从原来的栈中存放改为静态存储区)及其生命周期(局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,只不过我们不能再对他进行访问),但未改变其作用域。

2.全局变量:

在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。

注:static修饰全局变量,并未改变其存储位置及生命周期,而是改变了其作用域,使当前文件外的源文件无法访问该变量,好处如下:(1)不会被其他文件所访问,修改(2)其他文件中可以使用相同名字的变量,不会发生冲突。对全局函数也是有隐藏作用。而普通全局变量只要定义了,任何地方都能使用,使用前需要声明所有的.c文件,只能定义一次普通全局变量,但是可以声明多次(外部链接)。注意:全局变量的作用域是全局范围,但是在某个文件中使用时,必须先声明。

· 对类中的:

1.成员变量

用static修饰类的数据成员实际使其成为类的全局变量,会被类的所有对象共享,包括派生类的对象。因此,static成员必须在内外进行初始化(初始化格式: int base::var=10;),而不能在构造函数内进行初始化,不过也可以用const修饰static数据成员在类内初始化 。

特点:

不要试图在头文件中定义(初始化)静态数据成员。在大多数的情况下,这样做会引起重复定义这样的错误。即使加上#ifndef #define #endif或者#pragma once也不行。
静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以。
静态数据成员的类型可以是所属类的类型,而普通数据成员则不可以。普通数据成员的只能声明为 所属类类型的指针或引用。
2.成员函数

用static修饰成员函数,使这个类只存在这一份函数,所有对象共享该函数,不含this指针。
静态成员是可以独立访问的,也就是说,无须创建任何对象实例就可以访问。base::func(5,3);当static成员函数在类外定义时不需要加static修饰符。
在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。因为静态成员函数不含this指针。
不可以同时用const和static修饰成员函数。
C++编译器在实现const的成员函数的时候为了确保该函数不能修改类的实例的状态,会在函数中添加一个隐式的参数const this*。但当一个成员为static的时候,该函数是没有this指针的。也就是说此时const的用法和static是冲突的。

我们也可以这样理解:两者的语意是矛盾的。static的作用是表示该函数只作用在类型的静态变量上,与类的实例没有关系;而const的作用是确保函数不能修改类的实例的状态,与类型的静态变量没有关系。因此不能同时用它们。

const的作用:

1.限定变量为不可修改。

2.限定成员函数不可以修改任何数据成员。

3.const与指针:

const char *p 表示 指向的内容不能改变。

char * const p,就是将P声明为常指针,它的地址不能改变,是固定的,但是它的内容可以改变。

3.指针和引用的区别,引用可以用常指针实现吗。
本质上的区别是,指针是一个新的变量,只是这个变量存储的是另一个变量的地址,我们通过访问这个地址来修改变量。

而引用只是一个别名,还是变量本身。对引用进行的任何操作就是对变量本身进行操作,因此以达到修改变量的目的。

(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:
int a=1;int *p=&a;
int a=1;int &b=a;
上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。 而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存储单元。
(2)可以有const指针,但是没有const引用(const引用可读不可改,与绑定对象是否为const无关)
(3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)
(4)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;
(5)指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。
(6)"sizeof引用"得到的是所指向的变量(对象)的大小,而"sizeof指针"得到的是指针本身的大小;
(7)指针和引用的自增(++)运算意义不一样;
指针传参的时候,还是值传递,试图修改传进来的指针的值是不可以的。只能修改地址所保存变量的值。 引用传参的时候,传进来的就是变量本身,因此可以被修改。
4.什么是多态,多态有什么用途。
定义:“一个接口,多种方法”,程序在运行时才决定调用的函数。
实现:C++多态性主要是通过虚函数实现的,虚函数允许的类重写override(注意和overload的区别,overload是重载,是允许同名函数的表现,这些函数参数列表/类型不同)。
多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并生产代码,是静态的,就是说地址是早绑定的。而如果函数调用的地址不能在编译器期间确定,需要在运行时才确定,这就属于晚绑定。
3.目的:接口重用。封装可以使得代码模块化,继承可以扩展已存在的代码,他们的目的都是为了代码重用。而多态的目的则是为了接口重用。

4.用法:声明基类的指针,利用该指针指向任意一个子类对象,调用相应的虚函数,可以根据指向的子类的不同而实现不同的方法。

补充一下关于重载、重写、隐藏(总是不记得)的区别:

Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。

(1)相同的范围(在同一个类中);

(2)函数名字相同;

(3)参数不同;

(4)virtual 关键字可有可无。

Override(重写):是指派生类函数覆盖基类函数,特征是:

(1)不同的范围(分别位于派生类与基类);

(2)函数名字相同;

(3)参数相同;

(4)基类函数必须有virtual 关键字。

注:重写基类虚函数的时候,会自动转换这个函数为virtual函数,不管有没有加virtual,因此重写的时候不加virtual也是可以的,不过为了易读性,还是加上比较好。

Overwrite(隐藏):隐藏,是指派生类的函数屏蔽了与其同名的基类函数,规则如下: (1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。

(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。

补充一下虚函数表:
多态是由虚函数实现的,而虚函数主要是通过虚函数表(V-Table)来实现的。

如果一个类中包含虚函数(virtual修饰的函数),那么这个类就会包含一张虚函数表,虚函数表存储的每一项是一个虚函数的地址。如下图:

在这里插入图片描述

这个类的每一个对象都会包含一个虚指针(虚指针存在于对象实例地址的最前面,保证虚函数表有最高的性能),这个虚指针指向虚函数表。

注:对象不包含虚函数表,只有虚指针,类才包含虚函数表,派生类会生成一个兼容基类的虚函数表。

原始基类的虚函数表
下图是原始基类的对象,可以看到虚指针在地址的最前面,指向基类的虚函数表(假设基类定义了3个虚函数)

在这里插入图片描述

单继承时的虚函数(无重写基类虚函数)
假设现在派生类继承基类,并且重新定义了3个虚函数,派生类会自己产生一个兼容基类虚函数表的属于自己的虚函数表。

在这里插入图片描述

Derive class 继承了 Base class 中的三个虚函数,准确的说,是该函数实体的地址被拷贝到 Derive类的虚函数表,派生类新增的虚函数置于虚函数表的后面,并按声明顺序存放。

单继承时的虚函数(重写基类虚函数)
现在派生类重写基类的x函数,可以看到这个派生类构建自己的虚函数表的时候,修改了base::x()这一项,指向了自己的虚函数。

在这里插入图片描述

多重继承时的虚函数(Derived ::public Base1,public Base2)
这个派生类多重继承了两个基类base1,base2,因此它有两个虚函数表。

在这里插入图片描述

它的对象会有多个虚指针(据说和编译器相关),指向不同的虚函数表。

多重继承时指针的调整:

Derive b;
Base1* ptr1 = &b; // 指向 b 的初始地址
Base2* ptr2 = &b; // 指向 b 的第二个子对象
因为 Base1 是第一个基类,所以 ptr1 指向的是 Derive 对象的起始地址,不需要调整指针(偏移)。

因为 Base2 是第二个基类,所以必须对指针进行调整,即加上一个 offset,让 ptr2 指向 Base2 的对象。

当然,上述过程是由编译器完成的。

Base1* b1 = (Base1*)ptr2;
b1->y(); // 输出 Base2::y()
Base2* b2 = (Base2*)ptr1;
b2->y(); // 输出 Base1::y()
其实,通过某个类型的指针访问某个成员时,编译器只是根据类型的定义查找这个成员所在偏移量,用这个偏移量获取成员。由于 ptr2 本来就指向 Base2 子对象的起始地址,所以b1->y()调用到的是

Base2::y(),而 ptr1 本来就指向 Base1 子对象的起始地址(即 Derive对象的起始地址),所以b2->y()调用到的是Base1::y()。

虚继承时的虚函数表
虚继承的引入把对象的模型变得十分复杂,除了每个基类(MyClassA和MyClassB)和公共基类(MyClass)的虚函数表指针需要记录外,每个虚拟继承了MyClass的父类还需要记录一个虚基类表vbtable的指针vbptr。MyClassC的对象模型如图所示。

在这里插入图片描述

虚基类表每项记录了被继承的虚基类子对象相对于虚基类表指针的偏移量。比如MyClassA的虚基类表第二项记录值为24,正是MyClass::vfptr相对于MyClassA::vbptr的偏移量,同理MyClassB的虚基类表第二项记录值12也正是MyClass::vfptr相对于MyClassA::vbptr的偏移量。(虚函数与虚继承深入探讨)

对象模型探讨:
1.没有继承情况,vptr存放在对象的开始位置,以下是Base1的内存布局

在这里插入图片描述

2.单继承的情况下,对象只有一个vptr,它存放在对象的开始位置,派生类子对象在父类子对象的最后面,以下是D1的内存布局

在这里插入图片描述

  1. 虚拟继承情况下,虚父类子对象会放在派生类子对象之后,派生类子对象的第一个位置存放着一个vptr,虚拟子类的对象也会保存一个vptr,以下是VD1的内存布局

在这里插入图片描述

  1. 棱形继承的情况下,非虚基类子对象在派生类子对象前面,并按照声明顺序排列,虚基类子对象在派生类子对象后面

在这里插入图片描述

补充一下纯虚函数:
定义: 在很多情况下,基类本身生成对象是不合情理的。为了解决这个问题,方便使用类的多态性,引入了纯虚函数的概念,将函数定义为纯虚函数(方法:virtual ReturnType Function()= 0;)纯虚函数不能再在基类中实现,编译器要求在派生类中必须予以重写以实现多态性。同时含有纯虚拟函数的类称为抽象类,它不能生成对象。
特点:
1,当想在基类中抽象出一个方法,且该基类只做能被继承,而不能被实例化;(避免类被实例化且在编译时候被发现,可以采用此方法)

2,这个方法必须在派生类(derived class)中被实现;

目的:使派生类仅仅只是继承函数的接口。
补充一下纯虚函数:
定义:称带有纯虚函数的类为抽象类。
作用:为一个继承体系提供一个公共的根,为派生类提供操作接口的通用语义。
特点:1.抽象类只能作为基类来使用,而继承了抽象类的派生类如果没有实现纯虚函数,而只是继承纯虚函数,那么该类仍旧是一个抽象类,如果实现了纯虚函数,就不再是抽象类。
2.抽象类不可以定义对象。

补充一下多重继承和虚继承:
多重继承:

定义:派生类继承多个基类,派生类为每个基类(显式或隐式地)指定了访问级别——public、protected 或 private。

class Panda : public Bear, public Endangered {
}
构造:

派生类的对象包含每个基类的基类子对象。
派生类构造函数初始化所有基类(多重继承中若没有显式调用某个基类的构造函数,则编译器会调用该基类默认构造函数),派生类只能初始化自己的基类,并不需要考虑基类的基类怎么初始化。
多重继承时,基类构造函数按照基类构造函数在类派生列表中的出现次序调用。
析构:总是按构造函数运行的逆序调用析构函数。(基类的析构函数最好写成virtual,否则在子类对象销毁的时候,无法销毁子类对象部分资源。)假定所有根基类都将它们的析构函数适当定义为虚函数,那么,无论通过哪种指针类型删除对象,虚析构函数的处理都是一致的。

拷贝构造/赋值:如果要为派生类编写拷贝构造函数,则需要为调用基类相应拷贝构造函数并为其传递参数,否则只会拷贝派生类部分。

深拷贝与浅拷贝:

浅拷贝:默认的复制构造函数只是完成了对象之间的位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。

这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。

深拷贝:自定义复制构造函数需要注意,对象之间发生复制,资源重新分配,即A有5个空间,B也应该有5个空间,而不是指向A的5个空间。
虚继承与虚基类:

定义:在多重继承下,一个基类可以在派生层次中出现多次。(派生类对象中可能出现多个基类对象)在 C++ 中,通过使用虚继承解决这类问题。虚继承是一种机制,类通过虚继承指出它希望共享其虚基类的状态。在虚继承下,对给定虚基类,无论该类在派生层次中作为虚基类出现多少次,只继承一个共享的基类子对象。共享的基类子对象称为虚基类。

用法:istream 和 ostream 类对它们的基类进行虚继承。通过使基类成为虚基类,istream 和 ostream 指定,如果其他类(如 iostream 同时继承它们两个,则派生类中只出现它们的公共基类ios的一个副本。通过在派生列表中包含关键字 virtual 设置虚基类:

class istream : public virtual ios { … };

class ostream : virtual public ios { … };

// iostream inherits only one copy of its ios base class

class iostream: public istream, public ostream { … };

关注小编,后台私信【资料】

关注,私信【资料】获取!

☆小编根据视频资料写的文章,已经整理好PDF文档!

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200516215921165.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWR5dWV4aWE=,size_16,color_FFFFFF,t_70

关注,私信【资料】获取!

在这里插入图片描述

关注,私信【资料】获取!

在这里插入图片描述

关注,私信【资料】获取!

BAT面试真题+架构技术资料,提升软硬实力,收获高薪好offer

感谢你的朗读! 说了这么多,到底该如何学习呢,有没有资料或视频呀?

在这里插入图片描述

在这里插入图片描述

关注,私信【资料】免费获取!

大厂C++面试题库、BAT架构技术资料库(关注小编,后台私信【资料】)

资料内容涵盖BAT架构技术与面试真题,减少你到处搜索资料的时间,成体系的实战技术知识,让你面试、进阶都更加容易!

2024年Android最全C++面试干货---带你梳理常考的面试题(二),BAT大厂面试基础题集合 在此为大家准备了四节优质的Android高级进阶视频:架构师项目实战——全球首批Android开发者对Android架构的见解在C++中,模板是一种通用的编程工具,它允许程序员编写独立于特定数据类型的函数或类。模板可以在编译时根据传入的参数类型生成对应的代码,从而实现代码的复用和泛型编程。在函数模板中,可以定义一个通用的函数,它可以适用于不同类型的数据。例如,可以创建一个模板函数来实现两个整数相加的功能,该函数可以接受任意类型的整数作为参数,并返回它们的和。 阅读详情

相关推荐

面试题汇总(C++,java,android)

里面含有我收集的c++ java android面试题,几乎是涵盖3门语言所有网上能见到的面试题目。每一题都附有答案说明,是您面试c++或者java或者jsp或者android手机开发不可或却的资料

android popwindow仿微信右上角弹出框,dialog底部显示

TextViewandroid:text=“发起聊天”

2401_84132589的博客 534

c/c++常见笔试面试题总结

需要记忆的东西 总结了一下 希望有帮助

C++面试宝典,Android面经(3),超详细讲解

本人从事Android开发已经有十余年,算是一名资深的移动开发架构师了吧。根据我的观察发现,对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。所以在此将我十年载,从萌新小白一步步成长为Android移动开发架构师的学习笔记,从Android四大组件到手写实现一个架构设计,我都有一一的对应笔记为你讲解。当然我也为你们整理好了百度、阿里、腾讯、字节跳动等等互联网超级大厂的历年面试真题集锦。

2401_84104809的博客 570

综合面试题(Java__Android__Web__CC++).docx

综合面试题(Java__Android__Web__CC++).docx

Cibersort免疫浸润 --- 详细教程

免疫浸润是指免疫细胞如淋巴细胞、浆细胞、巨噬细胞等进入到组织或器官中,并在这些组织或器官中发挥免疫功能的过程。免疫细胞的浸润可以是炎症反应的一部分,也可以是针对感染、肿瘤或其他疾病的免疫应答的一部分。免疫浸润通过调节免疫反应和炎症反应的程度和类型,起到维护机体免疫平衡和清除异常细胞或病原体的作用。在某些情况下,免疫浸润可能导致炎症反应过度,引起组织损伤,例如自身免疫性疾病。因此,免疫浸润在许多疾病的诊断和治疗中都具有重要的意义。免疫浸润可以通过组织切片染色和免疫组织化学等方法观察和分析。

ZxVSaccount的博客 9107

面试相关问题(Android /C++)

(一)几个重要的知识点: 1.一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 https://blog.youkuaiyun.com/freekiteyu/article/details/70082302 2.linux设备驱动uevent详解,高通平台battery上报电量实例 https://blog.youkuaiyun.com/radianceblau/article/details/780...

编程菜鸟进阶之路 1099

C#.NET斗地主服务端核心架构与高性能实现

斗地主作为典型的实时对战棋牌逻辑,本质是状态驱动的分布式协同问题。其技术内核涵盖有限状态机建模、低延迟网络同步、无GC内存操作与轻量级AI决策等关键能力。在.NET平台下,借助Span<T>、ImmutableArray、命令/事件总线与内存池等特性,可构建出高吞吐(200+ QPS)、低延迟(<150ms)、强一致的可落地服务端。本文聚焦C#.NET生态中斗地主核心模块的设计取舍与压测验证,深入解析状态机驱动、CardSet结构体优化、Kestrel中间件锁、规则+概率混合AI等实战方案,为实时对战类业务

weixin_29726381的博客 345

Android之A面试题⑥Binder机制(C++)

一、 说明       Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。       我们这里将以MediaService的例子来分析Binder的使用:l------ServiceManager,这是Android OS的整个服务的管理程序l--...

Lingbulei的博客 1087

Educoder | 计算机网络实验-IP协议分析

本关任务:使用 Ping 命令发送数据报,用 Wireshark 截获数据报,分析 IP 数据报的格式,理解 IPV4 地址的编址方法,加深对 IP 协议的理解。

Mksg_28的博客 4755

论文阅读笔记---Deep HDR Video from Sequences with Alternating Exposures

Kalantari N K, Ramamoorthi R. Deep HDR Video from Sequences with Alternating Exposures[C]//Computer Graphics Forum. 2019, 38(2): 193-205. 摘要: 在本文中,提出了一种基于学习的方法来,我们使用两个顺序卷积神经网络(CNN)对整个HDR视频重建过程进...

qq_25283239的博客 1447

面试中常见的C/C++面试必考题

面试中常见的C/C++面试题 写这篇博客的目的,主要是记录一下在面试、笔试中,经常遇到的C/C++相关的出现频率较高的知识点。 个人经验、能力有限,热烈欢迎大家提供自身经历过的真实原题及答案。(众人拾柴火焰高!) 1、C和C++的区别(至少说出三点) 答:(1)C++是面向对象语言,C是面向过程语言。 (2)结构:C以结构体struct为核心结构;C++以类class为核心结构。...

yishuihanq的博客 4337

UE5新手必看:3种UI定位方法实战(含蓝图配置截图)

本文为UE5新手详细解析了三种核心UI定位方法:屏幕空间、场景空间和世界空间。通过实战蓝图配置与控件操作,指导开发者如何根据HUD、角色血条、3D物体标记等不同应用场景,正确选择并配置UI的定位方式,以实现清晰的信息传递与沉浸式体验。

weixin_29018815的博客 473

Android常用面试题大全

有很多不足之处,望大家多指教,谢谢!

orchid_gril的博客 8738

精益六西格玛Python数字化应用开发-Day18 应用场景:家电企业生产效率优化

本文将重点介绍专门针对精益六西格玛黑带使用场景的 Python 库,这些库功能侧重于数据分析和流程优化,特别适用于 DMAIC 方法论和看板管理。考虑到读者具备中高级Python 使用经验,我们将深入探讨各库的高级功能和实际应用应用场景。 某家电企业生产线自动化程度高,数据量巨大,希望通过精益管理提升生产效率。企业借助 Python 脚本,打通各类数据源(MES、ERP、设备日志),自动归集生产数据,分析各工序的生产节拍、设备停机、效率损失,快速定位瓶颈环节

m0_56592100的博客 905

基于STM32L4XX 、HAL库的TMC2209-LA-T步进电机驱动器驱动程序应用设计

/ R/W=0 表示写。uint32_t gconf_value = (0 << 0) // I_scale_analog: 禁用,使用UART控制电流。uint32_t ihold_irun = (8 << 0) // 保持电流 8/31 最大值。

PP_Cottage的博客 449

C++常见面试题总结

C++常见面试题总结7---语言对比C和C++的区别Java 和 C++ 的区别Python 和 C++ 的区别C和C++的区别 C和C++的区别 面向对象和面向过程: 面向过程的思路:分析解决问题所需的步骤,用函数把这些步骤依次实现。 面向对象的思路:把构成问题的事务分解为各个对象,建立对象的目的,不是完成一个步骤,而是描述某个事务在解决整个问题步骤中的行为。 区别和联系: 语言自身:C 语言是面向过程的编程,它最重要的特点是函数,通过 main 函数来调用各个子函数。程序运行的顺序都是程序员事先决定好

yuandenixin的博客 323

想在 Visual Studio Code 里进行 ABAP 开发,需要安装的扩展列表

安装完毕后,我们可以将 SAP 系统配置为 Visual Studio Code 连接的远程文件系统。为了连接到 SAP 系统,需要启用 ABAP 开发工具 (ADT) ICF 节点,这与 SAP Hana Studio 等工具使用的服务相同。打开 SAP GUI 并连接到目标系统,运行事务 SICF,然后激活 ADT_SRV 服务,如下所示。这启用了允许代码编辑器和 IDE 连接到 SAP 系统的服务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3120

java、c++、android开发面经纪要

参考资料为https://www.nowcoder.com/tutorial/94/ 持续更新中 数据库 SQL SQL注入 SQL注入是通过在涉及到数据库操作的接口函数的参数中传入一些sql命令,在具体的操作时被直接带入到sql命令中进行运行,导致数据库出现意外结果等。解决方法一般是格式校验以及sql预编译。 索引 是一种单独的数据库结构,可以在创建时或者是创建后来创建数据库表的索引,索引可以提高相关的查询速度。 索引可以分为唯一索引和普通索引、单一索引和组合索引、全文索引和空间索引。 组合索引的生效

weixin_45009394的博客 748

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【C++】语言基础笔记

头文件 .h 文件中能包含: 类成员数据的声明,但不能赋值 类静态数据成员的定义和赋值,但不建议 类的成员函数的声明 非类成员函数的声明 常数的定义:如:constint a=5; 静态函数的定义 类的内联函数的定义 不能包含: 所有非静态变量(不是类的数据成员)的声明 默认命名空间声明不要放在头文件,using namespace std; 等应放在 .cpp 中,在 .h 文件中使用 std::string 类型限定符 限定符 含义 const const 类型的对象在程序执行期

qq_30885821的博客 363

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

华为android高级面试题,华为C++开发工程师面试总结整理,面试问题你能答上几个?含答案...

前言:虽然全世界每个月都可能会出现新的语言,但从TIOBE世界编程语言排行榜的数据来看,从2009年到现在,C/C++一直都在前3甲中。不论历史的车轮如何滚滚向前,学好C/C++永远不会落后。面试官问的面试题:一面:1.先自我介绍;2.把自己简历上的项目描述一下,然后选一个你认为最主要的项目来说,以及项目遇到什么问题,用什么方法解决的;3.Nagle算法和tcp的拥塞控制。4.项目用过哪些数据库吗...

weixin_42502363的博客 297

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

华为C++开发工程师面试总结整理,面试问题你能答上几个?含答案

前言: 虽然全世界每个月都可能会出现新的语言,但从TIOBE世界编程语言排行榜的数据来看,从2009年到现在,C/C++一直都在前3甲中。不论历史的车轮如何滚滚向前,学好C/C++永远不会落后。 面试官问的面试题: 一面: 1.先自我介绍; 2.把自己简历上的项目描述一下,然后选一个你认为最主要的项目来说,以及项目遇到什么问题,用什么方法解决的; 华为C++开发工程师面试总结整理,面试问题你能答上...

Androidyuexia的博客 599

程序员面试(安卓+OS+网络+C++)

目录 1、操作系统 2、计算机网络 3、C++ 4、安卓 1、操作系统 1.进程的常见状态?以及各种状态之间的转换条件? 就绪:进程已处于准备好运行的状态,即进程已分配到除CPU外的所有必要资源后,只要再获得CPU,便可立即执行。执行:进程已经获得CPU,程序正在执行状态。阻塞:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态。 2.进程同...

TYtrack的博客 756

Android面试总结心得

前言首先在文章开始之前,需要大家了解下我的情况我是普通本科,不是985,211。大学的时候玩联盟,打篮球,逃课,谈恋爱。总之和一般的大学生一样,没有目标和方向,每天除了上课就是怎么开心怎么来。后来得知大四要实习,也看到了学长们就业那么困难,所以开始为自己的未来担忧,开始学习大学课程(电子相关专业),但是发现自己并不喜欢,但是也不知道该去学什么。无意间知道java,出去比较好找工作,所以开始自学,后...

maxiaoyin111111的博客 1654

2019年C++软件面试题集锦+面经

1、https://blog.youkuaiyun.com/Damage233/article/details/81116115 2、https://blog.youkuaiyun.com/Xiongchao99/article/details/73381280

WangY.H 1747
上一篇: C++学习 | 面试官:我们只想要这样的C++工程师
下一篇: C++程序员的职业生涯规划
程序媛月下
博客等级 码龄7年 5262粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值