首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计算机考研复试C语言常见面试题「建议收藏」

如果加了static,就会对其它源文件隐藏。利用这一特性可以不同文件中定义同名函数和同名变量,而不必担心命名冲突。...初始 Static变量默认初始化为0. 对一个类中成员变量和成员函数来说,加了static关键字,则此变量/函数没有了this指针了,必须通过类名才能访问。...7、指针与引用 指针有自己空间 指针初始可以为NULL 指针可以有多级指针(存在指向指针指针) 指针初始可以再指向其他对象 引用只是一个别名 引用初始化时必须有一个对象 引用只能一级(没有引用引用引用...class可以声明类模板,而struct不可以。 9、c++模板 模板就是实现代码重用机制一种工具,它可以实现类型参数,即把类型定义为参数, 从而实现了真正代码可重用性。...基类中实现纯虚函数方法是函数原型加“=0” 如:virtual void funtion1()=0 如果A中virtual去掉以后,以上结果将会是Afoo 16、为什么析构函数必须是虚函数

1.5K30

C ++ 中不容忽视 25 个 API 错误设计!

错误#9:使用隐式模板实例化时,使用模板实现细节来混淆公共头文件 隐式实例中,模板代码内部必须放在头文件中。没有其他办法。...你代码逻辑内部现在暴露出来,这绝不是一个好主意。 客户端可以用一些你以前没有测试过任意类型来实例模板,并且会遇到奇怪失败。 如何解决这个问题?...错误#20:已发布类API添加纯虚方法 为什么这是一个错误?...开发过程早期,经常看到并亲自表示没有进行API审核。这是因为没有任何结构指令来进行API审核。...发现当没有流程时会出现多个问题,包括: 该API不符合Beta客户使用案例(通常情况,人们会等到Beta客户再查看API。) API与系统其他部分或同一系列产品不相似。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

《逆袭进大厂》第三弹之C++提高篇79问79答

函数模板实例是由编译程序处理函数调用时自动完成,而类模板实例必须由程序程序中显式地指定。即函数模板允许隐式调用和显式调用而类模板只能显示调用。...使用时类模板必须加,而函数模板不必 125、为什么模板类一般都是放在一个h文件中 1) 模板定义很特殊。...然而当实现该模板.cpp文件没有用到模板实例时,编译器懒得去实例,所以,整个工程.obj中就找不到一行模板实例二进制代码,于是连接器也黔驴技穷了。...这两者存储方式上并无不同。这两者区别在于静态全局变量作用域是整个源程序,当一个程序由多个原文件组成时,静态全局变量各个源文件中都是有效。...它具有以下特点: 在给定文件系统中一个库只有一个文件,所有引用该库可执行目标文件都共享这个文件,它不会被复制到引用它可执行文件中; 在内存中,一个共享库 .text 节(已编译程序机器代码一个副本可以被不同正在运行进程共享

2.2K30

sstream类详解

错误格式符 在这种情况程序员错误地使用了%f格式符来替代了%d。因此,s调用完sprintf()包含了一个不确定字符串。要是能自动推导出正确类型,那不是更好吗?...安全性(security) C 语言安全性问题近十几年来引起了广泛注意,C99 增加了 snprintf() 等能够指定输出缓冲区大小函数输出面的安全性问题已经得到解决;输入方面似乎没有太大进展...这样似乎更容易写出健壮程序输出方面,ostream 格式输出非常繁琐,而且写死代码里,不如 stdio 小语言那么灵活通用。...istream 继承 ios,有没有哪种情况程序代码期待 ios 对象,但是客户可以传入一个 istream 对象替代之?...ostream 继承 ios,有没有哪种情况程序代码期待 ios 对象,但是客户可以传入一个 ostream 对象替代之?

1.3K10

string和stringstream用法详解「建议收藏」

通常在循环里,这样产生或者遍历一些文件。...为什么要学习 如果你已习惯了风格转换,也许你首先会问:为什么要花额外精力来学习基于类型转换呢?也许对下面一个简单例子回顾能够说服你。...如果使用了不正确格式符,会导致预知后果。...错误格式符 在这种情况程序员错误地使用了%f格式符来替代了%d。因此,s调用完sprintf()包含了一个不确定字符串。要是能自动推导出正确类型,那不是更好吗?...stringstream对象构造和析构函数通常是非常耗费CPU时间类型转换中使用模板 你可以轻松地定义函数模板来将一个任意类型转换到特定目标类型。

1.1K20

c++ 字符串流 sstream(常用于格式转换)

为什么要学习 如果你已习惯了风格转换,也许你首先会问:为什么要花额外精力来学习基于类型转换呢?也许对下面一个简单例子回顾能够说服你。...如果使用了不正确格式符,会导致预知后果。...但是,对上面代码一个微小改变就会使程序崩溃: int n=10000; char s[10]; sprintf(s,”%f”,n);// 看!...错误格式符 在这种情况程序员错误地使用了%f格式符来替代了%d。因此,s调用完sprintf()包含了一个不确定字符串。要是能自动推导出正确类型,那不是更好吗?...stringstream对象构造和析构函数通常是非常耗费CPU时间类型转换中使用模板 你可以轻松地定义函数模板来将一个任意类型转换到特定目标类型。

85920

JavaScript图表数据可视:比较D3和Kendo UI

想要实现图表(Excel中绘制,以保持中立)是: ? 此外,为了展示如何做一些基本动画,我们还添加了一些工具提示,以便在鼠标滑过其中一个栏时,可以看到该栏显示值。...虽然它没有画出带有标签X轴,因为我们没有给它,但它至少画出了坐标轴。它还使用了指定“steelblue”,并添加了一些阴影使它看起来更有趣。 最后,它添加了网格线。...下一个步骤 让我们更进一步,首先,关闭那些网格线,使我们两个图表匹配。通过kendoChart中添加两个部分,Kendo UI代码中很容易做到这一点。...如果您正在做一些非常不寻常事情,需要进行极端定制,或者正在处理一个类项目,或者其他商业应用程序,并且您喜欢玩代码,那么D3就是一个很好选择。这两个选项肯定比绘制单个矩形更好!...它还使用了指定“steelblue”,并添加了一些阴影使它看起来更有趣。 最后,它添加了网格线。这是两个库之间不同方法一个很好例子。D3只做,只做

11.8K30

sstream函数

为什么要学习 如果你已习惯了风格转换,也许你首先会问:为什么要花额外精力来学习基于类型转换呢?也许对下面一个简单例子回顾能够说服你。...如果使用了不正确格式符,会导致预知后果。...但是,对上面代码一个微小改变就会使程序崩溃: int n=10000; char s[10]; sprintf(s,”%f”,n);// 看!...错误格式符 在这种情况程序员错误地使用了%f格式符来替代了%d。因此,s调用完sprintf()包含了一个不确定字符串。要是能自动推导出正确类型,那不是更好吗?...stringstream对象构造和析构函数通常是非常耗费CPU时间类型转换中使用模板 你可以轻松地定义函数模板来将一个任意类型转换到特定目标类型。

36640

【PHP快速入门】详细笔记---精简版

通过cURL来做小偷程序 微信微博公众号、QQ公众号、地图和很多第三方功能提供都是采用http API(应用程序)形式开发人员提供功能。...> echo 直接输出了12121.3132,而var_dump 输出了0.8873,还显示了变量$fl类型为float。 var_dump() 是一个函数括号()中间插入变量。...常量名 说明 LINE 当前所在行 FILE 当前文件服务器路径 FUNCTIOIN 当前函数名 CLASS 当前类名 METHOD 当前成员方法名 PHP_OS PHP运行操作系统 PHP_VERSION...> 你可以输出值看一结果。通过上面的实验我们知道了,通过$_GET这个外部变量,可以得到从表单输入值。 reg.php后面跟了一个?...用代码表示:if($x || y) 如果 x已经为true了,后面的$y 就没有执行必要了。 我们写段代码来证明一: <?

10.5K20

Vue3.2 中新出 expose 是做啥用

如果你开发一个开源组件或库,你有可能想保持一些内部方法私有性。Vue 3.2之前,这并不容易实现,因为所有选项API中声明方法或数据等都是公开,所以模板可以访问它。 组合API也是如此。...null }), methods: { reset () { ... }, terminate () { ... } }, expose: ['reset'] } 注意,我们添加了一个选项...这就产生了一个问题,因为我们setup函数中,整个return语句只是包含组件正在创建节点 h 方法。...如果在这个时候我们选择父类 expose 一些东西,我们就会遇到与我们之前看到相反问题。没有任何东西被暴露,因为除了DOM元素,没有任何东西被返回。...---- 代码部署可能存在BUG没法实时知道,事后为了解决这些BUG,花了大量时间进行log 调试,这边顺便给大家推荐一个好用BUG监控工具 Fundebug。

29910

Vue3.2 中新出 expose 是做啥用

如果你开发一个开源组件或库,你有可能想保持一些内部方法私有性。Vue 3.2之前,这并不容易实现,因为所有选项API中声明方法或数据等都是公开,所以模板可以访问它。组合API也是如此。...,希望父级组件能够需要时直接调用reset方法–但我希望保持terminate 函数和 counter 引用只对组件可用。...,我们添加了一个选项API属性expose,允许我们传入一个数组,其中字符串’reset’是我们公开函数名称。...这就产生了一个问题,因为我们setup函数中,整个return语句只是包含组件正在创建节点 h 方法。...如果在这个时候我们选择父类 expose 一些东西,我们就会遇到与我们之前看到相反问题。没有任何东西被暴露,因为除了DOM元素,没有任何东西被返回。

80530

不能定义声明dllimport_不允许 dllimport 静态数据成员

一个.cpp及其包括所有.h经编译叫做一个编译单元,即.obj文件,然后由连接器把所有的.obj连接生成一 个PE可执行.exe文件。...模板是需要‘具体,编译器直到碰到使用这个模板代码时候才会把模板编译成二进制代码。...留意一STL代码你会发现,所有模板代码全 都放在一个.h文件中,为什么不分开放在.cpp文件中,因为放在.cpp文件中即成为一个编译单元,一个单元就是一个PE结构,是实在二进制代码文 件,但这个单元没有调用这个模板又哪来编译单元...现在来分析一面的模板代码为什么会出错,很简单: 既然使用了__declspec(dllimport)声明,却又对CTest()及~CTest()进行定义,违反VC规则“数据、静态数据成员函数可以声明...为什么不能将这2个函数定义放在.cpp文件中上面已经有解释了。 上面说不太完美:添加以下说明: __declspec(dllexport) 声明一个导出函数,是说这个函数要从本DLL导出。

1.8K20

STL之Stringstream字符串流使用总结

大家好,又见面了,是你们朋友全栈君。 如果你已习惯了风格转换,也许你首先会问:为什么要花额外精力来学习基于类型 转换呢?...此外,还必须使用正确格式符。如果使用了不正确格式符,会导致预知后果。...但是,对上面代码一个微小改变就会使程序崩溃: int n=10000; char s[10]; sprintf(s,”%f”,n);// 看!...错误格式符 在这种情况程序员错误地使用了%f格式符来替代了%d。因此,s调用完sprintf()包含了一个不确定字符串。要是能自动推导出正确类型,那不是更好吗?...stringstream对象构造和析构函数通常是非常耗费CPU时间类型转换中使用模板 你可以轻松地定义函数模板来将一个任意类型转换到特定目标类型。

1.1K10

Autoconf 详解

目前正在将来添加这些特征而工作。 对于C程序#ifdef中使用名字,Autoconf施加了一些限制(参见预处理器符号索引)。 Autoconf需要GNU m4以便于生成脚本。...ifnames扫描所有命令行中给出C源代码文件(如果没有给出,就扫描标准输入)并且把排序、由所有出现在这些文件#if、#elif、#ifdef或者#ifndef 命令中标识符列表输出到标准输出中...由于文件没有被改变情况, autoheader并不改变它输出文件时间标记(timestamp)。这是为了使工作量最小,修改时间标记是不必要。...添加了大部分Cygnus configure 有,而Autoconf缺少特征,主要是david zuhn和Ken Raeburn帮助改编Cygnus configure相关部分。...添加了一些所开发附加工具以助于修改源代码包以使用Autoconf。Pinard帮助创建了不会在彼此消息中导致冲突宏。

3.5K50

(转载原创)从新建文件夹开始构建UtopiaEngine(2)

这个时候呢,我们已经创建了引擎应用程序接口类,接下来就是要在应用程序内创建应用程序接口类实现了,我们应用程序项目下新建一个.cpp文件即可,因为应用程序接口实现类是没有别的类会调用它。...首先,就是Engine.h问题,我们虽然成功创建了应用程序接口,但我们并没有Engine.h中包含应用程序接口声明文件,以及我们并未包含引擎规则。...前往GitHub去下载spdlog源码(链接就不放了,GitHub搜索很容易就找到),记住,是下载源码,如果你引擎项目添加了Git跟踪,你可以直接用git module命令扒取下来,这里不对这个命令做过多解释...: // 由于日志系统代码可以说几乎引擎中所有地方都会调用,如果使用静态成员,那每次调用都要在相应类中 // 设定一个日志类成员对象,浪费了内存资源不说,可能还会造成不可必要麻烦...类型是整型,用来存放在上面的宏定义程序会根据宏定义指定来选择日志输出方,即是引擎还是应用程序 // 2.

82400

为什么用 Svelte 写一个程序如此快速?用10分钟就搞定了!

下载完模板,切换到它文件夹并运行npm install,它会下载我们需要所有包。...我们本可以对简单动态属性做同样工作,但这种方式为我们节省了一些代码——Svelte中经常遇到思考模式。 当用户按enter键时,我们希望将新书标题添加到列表中。...为此,我们添加了一个DOM事件监听器。要告诉Svelte钩子事件,我们只需on和其余事件名称之间添加一个冒号——本例中是on:keydown。在那之后,我们使用花括号并将函数名放在里面。...这也是为什么Svelte应用程序包大小如此之小原因:所有不需要东西都不会出现在输出中,所以Svelte可以省去运行时中所有不需要部分。...如果您担心上面的代码将样式整个应用程序所有、或标记,请放心,它不会。默认情况,精简作用域样式,所以它们只适用于定义它们组件。

2.6K10

如何优雅传递 stl 容器作为函数参数来实现元素插入和遍历?

为此,接收到消息,会将它们保存在进程中一个容器中,当有新消息到达时,会先在这个容器里检查有没有收到这条消息,如果有,就不再转发。...此时需要使用“模板显示实例 engine_db.cpp 文件中强制模板生成对应代码实体,来和 engine.cpp 中调用点进行链接。...然而不幸是,这段代码“残疾”了,不知道是作者盗链、还是没有输入完整原因,这段代码有一些先天语法缺失,导致它甚至不能通过编译,不懈“脑补”过程,缺失部分已经通过高亮部位补齐了,众位客官可以直接享用...使用普通模板函数代替类成员模板函数 本文最后,我们再回头看一上面例子中两个成员模板函数,发现它们并没有使用到类中其它成员,其实完全可以将它们独立成两个普通模板函数去调用,例如改成这样: 1 namespace...特别是还研究了如何将这种方式实现模板函数不同文件中分别声明与实现,达到解除代码耦合目的,具有较强实用性。

3.6K20

【干货】用大白话聊聊JavaSE — ArrayList 深入剖析和Java基础知识详解(一)

我们知道,接口里只有方法声明,没有方法实现。 对接口理解,总结以后就只有一句话: Java类实现接口,就是给这个类本身添加了一个身份。...所以,正常情况,我们调用一个静态方法,是不是必须要先new一个对象? 好,我们现在来 根据 ArrayList 模板生产一个 ArrayList 产品。...慢慢地,你就会对多态有一个更深入理解。一段时间,你再重新去看以前写代码,会有不一样感觉。 再举一个例子,帮助你理解。...嗯,再体会一。 初学者面向对象方面的理解总是会走弯路,如果你能把这些东西理清,对今后学习会有巨大好处。 继续。...这是通过数组下标来删除某一个特定元素,我们刚才给ArrayList添加了两个元素,下标分别为 0,1 ,那么,如果删除第0个元素,会怎么样呢? 首先,ArrayList列表长度会不会改变?

59840

《逆袭进大厂》之C++篇49问49答(绝对干货)

所有不加static全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在编译模块中使用 默认初始化为0,包括未初始全局静态变量与局部静态变量,都存在全局未初始区 静态变量函数内定义...,所以不能在类中声明时初始 const成员函数:const对象不可以调用const成员函数const对象都可以调用;不可以改变mutable(用该关键字声明变量可以const成员函数中被修改...//Error, 加了override之后,这个函数一定是继承自A,A找不到就报错 }; final 当不希望某个类被继承,或不希望某个虚函数被重写,可以类名和虚函数添加final关键字,添加final...extern"C"用法 为了能够正确C++代码中调用C语言代码程序中加上extern "C",相当于告诉编译器这部分代码是C语言写,因此要按照C语言进行编译,而不是C++; 哪些情况使用...注意 模板及其特例版本应该声明一个文件中,且所有同名模板声明应该放在前面,后面放特例版本。

2.5K40

2022 最新 Spring Boot 面试题 (一)

如果必须启动一个 Spring 项目, 我们必须 加构建路径或添加 Maven 依赖关系, 配置应用程序服务器, 添加 spring 配置。...6、 没有单独 Web 服务器需要。 这意味着你不再需要启动 Tomcat, Glassfish 或其他任何东西。 7、需要更少配置 因为没有 web.xml 文件 。...加载主应用程序属性文件, Spring 将在( application{environment} .properties)中加载后续应用程序属 性文件。 3、什么是 JavaConfig?...YAML 是一种人类可读数据序列语言。 它通常用于配置文件。 与属性文件相比 ,如 果我们想要在配置文件添加复杂属性 ,YAML 文件就更加 结构, 而且更少混淆。...它建立 Spring Boot Actuator 之上 ,它提供了一个 Web UI,使 我们能够可视多个应用程序度量。 如果大家觉得还不错,点赞,收藏,分享,一键三连支持~

15010
领券