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

这句话是什么意思?"优秀的C++编程通常不会以复杂的方式使用指针."

这句话的意思是,在编写优秀的C++程序时,通常不会过度使用指针。换句话说,C++编程中的指针是一种重要的工具,但并不是所有情况下都需要使用指针。

在编写C++程序时,需要权衡使用指针的利弊。使用指针可以帮助程序员更好地管理内存,避免内存泄漏等问题,但过度使用指针可能会导致程序效率降低,甚至出现程序错误。因此,在编写优秀的C++程序时,需要根据具体情况选择是否使用指针,以及如何使用指针。

总之,这句话是在强调,在编写优秀的C++程序时,不应该过度使用指针,而是应该根据具体情况选择是否使用指针,以及如何使用指针。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rust: 编译器驱动开发

因此,我观点并不适合作为一份参考材料。 Rust 是什么? 让我来 copy 一下 Rust 是由 Mozilla 主导开发通用、编译型编程语言。...底层语言 && 系统编程语言 我正在寻找一门不是那么复杂底层编程语言,陪我完成一些更有意思工作,而且还不需要那种 “指向指针指针”。就这方面来说,Go 是一门不错语言,但是没有 OO。...从某中意义上来说,它相当于是内置了一个 Sonarqube、Findbugs 这一类 SAST(静态应用程序安全测试)工具。并在编译时失败,强迫你修复潜在漏洞。 其实是个缺点,哈哈哈。...交叉编译 在 Go 一样,在这一点上远远比 C/C++ 还是优秀。 包管理 + 构建 在几个底层语言里,C/C++、Go、Rust 里,几乎只有 Rust 包管理是好用。...复杂所有权机制 Rust 引入了所有权概念和工具,在没有垃圾回收机制前提下保障内存安全。这是一个相当复杂概念——主要是在其它语言中都没有。 一个非常有意思例子就是对于字符串操作。

1.3K20

这是我全部经验

像这种有歧义场合,我们应该少用代词,尽量用具体主语去代替: C++语言发明于1980年代,它支持“指针”和“面向对象(Object-Oriented)”两个特性,C++价值在计算机编程语言历史上数一数二...仔细读者可能已经观察到了前面在举例时候我们有这样一段话: C++语言**** 1980年代,它支持“指针”和“面向对象(Object-Oriented)”两个特性,C++价值在计算机编程语言历史上数一数二...5 正确使用段落 单一职责 与面向对象编程中“类单一职责原则”一样,文档中句子(特指句号结尾句话)、段落也应该遵循“单一职责原则”。...由于C++继承了C大部分语法,再加上本身具备复杂类型系统以及泛型编程等语言特性,新人入门门槛也比较高。...优秀作者在正式动手之前,可能已经有了很长一段时间思考准备,尤其对于那种非常复杂文档。但是这种方式对一些人来讲可能不太现实,难度太大。

75710
  • 再谈如何写好技术文档?

    像这种有歧义场合,我们应该少用代词,尽量用具体主语去代替: C++语言发明于1980年代,它支持“指针”和“面向对象(Object-Oriented)”两个特性,C++价值在计算机编程语言历史上数一数二...仔细读者可能已经观察到了前面在举例时候我们有这样一段话: C++语言1980年代,它支持“指针”和“面向对象(Object-Oriented)”两个特性,C++价值在计算机编程语言历史上数一数二...— 5 — 正确使用段落 单一职责 与面向对象编程中“类单一职责原则”一样,文档中句子(特指句号结尾句话)、段落也应该遵循“单一职责原则”。...由于C++继承了C大部分语法,再加上本身具备复杂类型系统以及泛型编程等语言特性,新人入门门槛也比较高。...优秀作者在正式动手之前,可能已经有了很长一段时间思考准备,尤其对于那种非常复杂文档。但是这种方式对一些人来讲可能不太现实,难度太大。

    39620

    C++】从零开始认识继承

    让我们一起踏上这场探索之旅,开启编程新篇章 — C++进阶!!!...而后来发现时候,为了向上兼容,只能打补丁,所以不开避免不会有一些弊端,会有复杂语法和复杂特性。但这也是C++语言 “我不入地狱,谁入地狱!!! ”豪迈气息 。...如果B进行了虚拟继承,那么B所有的实例类都会按照菱形继承中方式进行访问!!!因为要保持一致,应该类不应出现两种访问方式。 7 继承总结和思考 很多人说C++语法复杂,其实多继承就是一个体现。...多继承可以认为是C++缺陷之一,很多后来很多语言都没有多继承,如Java。 继承和组合(优先使用组合) public继承是一种is-a(谁是什么关系。...java等后来发展语言见到c++中多继承复杂,就干脆放弃了。 什么是菱形继承?多继承问题是什么

    7510

    我为什么建议大家一定会 C 语言

    C 认识 1、C 语言作为编程最古老语言之一,至今走过了快半个世纪,久经考验,仍然是宝刀未老,在排行榜上常年名列前茅,铁铮铮事实还不能说明问题吗?...,仅仅是基础部分,想靠这个去找工作,是远远不够,在有了 C 基础之上,看你自己兴趣和方向而定,到时候,想走后台,选择 Java C++ Go 之一可以去学,想走人工智能领域,可以去学 Python...,我在大二时候,开始接触 C,大半年时间,总是理解不了指针,被指针各种用法所深深折磨,C 也仅仅是掌握了皮毛,那时候自己,就觉得自己是不是不适合学习编程,自己太笨了,总也学不会 我现在还记得清楚...,树立终生学习理念,牢记一句话,在校期间,不管你学是什么编程语言,什么编程技术,工作了,可能你以前学那些都用不上(反正我以前学基本都用不上,自己来公司从 0 开始),这是很正常,但编程素养和编程习惯在就行了...”才能望远,所以优秀程序员都会学习 C 语言,你想成为优秀程序员吗?

    1.4K50

    蒋豆芽面试题专栏总结(C++软件开发与嵌入式软件)完成了!

    本专栏介绍 本专栏适合于C/C++已经入门学生或人士,有一定编程基础。 本专栏适合于互联网C++软件开发、嵌入式软件求职学生或人士。...第二:将分配内存指针链表形式自行管理,使用完毕之后从链表中删除,程序结束时可检查改链表。 第三:使用智能指针。...malloc采用是内存池管理方式减少内存碎片。先申请大块内存作为堆区,然后将堆区分为多个内存块。当用户申请内存时,直接从堆区分配一块合适空闲快。...⭐⭐⭐⭐ 1.2 结构体和共用体区别?⭐⭐⭐⭐ 1.3 简述C++有几种传值方式,之间区别是什么?...⭐⭐⭐⭐⭐ 1.36 请说说HTTP协议特点⭐⭐⭐⭐⭐ 1.37 HTTP无连接是什么意思?⭐⭐⭐⭐ 1.38 HTTP无状态是什么意思

    2K41

    本立道生,Go interface背后对象模型

    Linus说他不喜欢C++,一部分原因是C++编译器偷偷地在目标代码里干了很多事情完成C++诸如虚拟继承、多重继承等OO相关语意,这使得大神觉得这种行为超出了他控制,他喜欢从C代码一眼看穿汇编代码那种直接...所有语言,包括人类(也称为“自然”)语言都有语法,即规定句子是否被正确构造规则。 语意(semantics,也译作语义)是关于句子意思。它需要回答问题:这句话有效吗?这句话是什么意思?...,事实上C++编译器cfront采用是左边方式,而微软最初编译器则使用了右边方式。...我们来思考三个问题: 接口值到底是什么?它是指针吗?如果是的话,指针所指向那块内存内容是什么? any.(Stringer)这样类型断言到底是如何实现? 反射所依赖底层数据结构到底是什么?...这里需要强调是这个列表只列出interface所定义method,换句话说,Binary所定义Get()方法不会出现在这个itable里面,因为interface String没有定义它。

    35230

    在Java中如何理解面向接口编程,荐读篇

    还是那句话,它是一种软件设计模式,与具体语言无关,C++或者C都可以并且也大量使用过这种编程模式。...面向接口(设计)编程是什么意思,为了什么,有什么好处 (1)说文解字 “面向”这个词,在软件设计编程中得到大量使用。但似乎我们有不是很明白它到底代表什么意思。...就像前面纠结“面向对象”这个词是什么意思时候,我们也需要对“面向接口”这个词有较为深刻解析。...还有一个不好问题是,给检疫员编程时候,如果动物这个类太复杂了(包含太多方法和属性),会是编程趋于困难,如果,给检疫员只是一个它所能关注和需要调用使用动物一部分,那么编程就方便了。...自然不会,我们用“吃”做为他面向东西,因为不管是C++,还是C#/java.他们都保证了接口和基类在这方面的特性,所以,使用“吃”作为面向东西来实现我们要实现多态性是语法可行

    1.1K10

    编程之魂之C# – 与C#之父Anders访谈

    实际上,这又回到了我以前想要谈内容。每当我们考虑为语言添加一个新特性时,我总是尽量让它适用于多个领域。优秀语言特性标志就是,你可以不止-种方式使用它。这里,我再次举LINQ为例。...而第四代编程语言(4GL)则包括VB、C++等。访问数据库语言通常都是第四代。...从某种意义上来说,获得反馈第一阶段是去侦探问题所在,并理解隐藏在客户要求解决方案下真正诉求。他们真正问题是什么? 然后,我才考虑决定何种方式来解决它。...对于那些不是也不想成为“魔法大师”的人来说,编程会更容易吗? Anders:我想是这样完全取决于你通过编程所要表达意思。因为在某种意义上来说,你是在使用一个电子表格编程吗?...人们已经尝试过,这对于我们在主流语言中(比如C++、C#和Java等)使用命令式编程风格是不会起作用。这些语言很难自动并行化,因为人们在程序中过于依赖它副作用。 你要做一些事情。

    81520

    当我渡过计算机语言

    当我学习并使用语言越来越多,我却发现很多有意思事情,于是想聊聊这些发现,也希望能给学习编程语言读者,一些微薄帮助。...从基本数学能力,也就是抽象思维、逻辑推理、想象力这些角度看,编程工作确实和数学关系匪浅;但并不表示数学考试成绩不好,就不适合编程,也不用因为没学过离散数学或者图论,就觉得自己不能成为优秀程序员。...PASCAL 语言用 := 作为赋值符号,可以说是对这种错误一个纠正。 * 号,同时具备“乘法”“声明指针”“解引用”三个含义,具体是什么意思,取决于这个符号写在什么地方。...把 select、chan 这种东西直接弄到语言里面,尽管功能完全可以用库方式提供,但 Go 就是要让你膜拜一下。...C++ 到底是什么? 并不是 C 语言 C++ 号称兼容 C 语言,意思是你可以像写 C 语言一样编写 C++ 代码。同时,一般 C++ 编译器,也能很好链接 C 写库。

    9710

    初学者,应该如何学好 CC++语言?

    好的开始是成功一半,选择一本优秀教材是事半功倍关键因素。不幸是,学校通常会帮你指定一本很差劲C语言课本;而幸运是,你还可以再次选择。...Visual C++ 6.0使用很方便,调试也很直观,但其默认编译器对C标准支持并不好,而Dev C++使用gcc编译器,对C99标准都支持良好。...转变过程是痛苦,你需要面对是各种纷繁复杂命令,完全不同于Windows平台思考方式,但是这种痛苦是值得。 Unix与C是共生,Unix思考方式和习惯更加符合C语言思考方式和习惯。...归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。...当然,这种方式只适合学习需要精通技术,如果不是学习C语言,你还要具体情况具体分析。 写到最后,还有非常非常重要一点没有提及──代码风格,从最开始学习就必须强迫自己模仿最优秀代码风格。

    29530

    Efficient&Elegant:Java程序员入门Cpp

    C++ 有着灵活且低开销抽象机制【核心掌握】(可能的话形式呈现),而不是简单的如Java一样上来就给所有类创造一个唯一基类。 尽量不使用引用和指针变量,作为替代,使用局部变量和成员变量。...移动操作完成以后,源对象所进入状态应该能允许运行析构函数。通常,我们也应该允许为一个移动操作后源对象赋值。 方式返回容器(依赖于移动操作提高效率)。...using the reference wraper with thread thread t2{FF{vec2}};// 值传递方式可保证其他线程不会访问vec2【因为值传递是复制一份值传递过去而不会修改...总结 本文长篇大论,实际上都是C++ 最入门知识,我们可以直接去查标准库或其他优秀库boost等,但若要真的掌握一门语言,在开始查找以前,从头到尾了解清楚这门语言是什么,它设计思想,它都涵盖了哪些内容...之后,我们会进入C++ 优秀项目的源码学习,在这个阶段,我们将丢下身上书生气,切实地应用工业级代码规范,去熟悉更多优秀使用

    1.9K71

    你想知道都在这里

    作为职业编译器工程师 Graydon,看到了互联网未来是安全和性能并重,并且他熟悉很多优秀编程语言特性,他想把这些优秀语言特性融合到一门语言中。是他这种理念创造了 Rust。...在 Graydon 身边,还有一群优秀的人: Niko 为核心语言核心团队的人。...并且号称纯函数式编程语言Haskell也诞生了。面向对象语言和函数式编程语言两大编程范式语言都得到了长足发展。 在20世纪末,系统软件通常使用C(或之前“现代” C ++)构建。...因为它们语义紧密地反映了CPU使用方式,所以这些语言产生了精简高性能系统。 为了提高效率而付出代价是冒着安全漏洞风险,例如缓冲区溢出,这使我们关键系统容易受到恶意行为者攻击。...所有权机制; 有C++基础:C++开发者对于Rust语言所有权有很好理解能力,主要精力放在Rust抽象方式和函数式语言特性上; 有Java/Python/Ruby基础:着重理解攻克Rust所有权、

    1.8K30

    深度总结了类相关知识)(上)

    前言 为什么C++要学习类?学习C++类是掌握面向对象编程关键。类提供了将数据与操作封装在一起结构化方式,帮助开发者解决复杂问题、提高代码可重用性和安全性。...在这种编程方式中,程序主要由一系列指令和函数构成,程序员通过函数调用来组织代码,函数核心目的是处理数据。 特点: 功能为中心:通过函数(也称为过程)来实现特定功能。...C++面向过程编程C++继承自C语言,因此可以使用面向过程编程风格。你可以定义函数、全局变量、结构体等,来实现程序功能。...面向对象编程通过封装、继承和多态等特性,提供了更好代码组织方式,适合复杂大型应用程序。...C++作为一门强大编程语言,能够灵活地支持这两种编程方式,帮助开发者根据不同需求选择合适编程范式。

    8210

    Go语言入门——进阶语法篇(三)

    而Pointer类型指针指向一个对象时, GC则不会回收这个内存对象 指针总结 Go指针主要用于传递结构体地址,防止不必要内存拷贝,提升性能 Go语言使用nil表示空指针 Go无需手动管理堆内存,Go...随着软件业发展,需求越来越复杂,人们发现面向过程思维模型太简单了,已经无法胜任日益复杂软件需求了,于是就出现了面向对象思维方式。面向对象既是一种思维模型,也是一种代码组织形式。...其实就是将具体事物抽象化,用一句星爷电影《功夫》中台词来解释就是“那个谁”意思,就是将一切具体事物,抽象出一个共同指代模型,你也可以说“那个东西”、“那个事物”,你在说这句话时,一定是指一个具体存在东西...Go与这些编程语言不同,它没有在语法层面完全支持面向对象,譬如它没有类概念,Go只能像C语言一样,使用结构体来模拟类,但是Go语言结构体与C++结构体不同,C++结构体并不是真正结构体,它实际上就是一个类...和方法名之间,它类型就是需要添加方法结构类型,该参数通常使用结构体指针,参数名任意,不过推荐使用this或self,这里接收者作用相当于C++this指针,或者Python中self。

    56331

    势头强劲 Python PK 强大 C++,究竟谁更胜一筹?

    这种动态特性常常会让我们遇到意想不到结果。Python程序员需要保证正确方式或在正确上下文中使用对象,因此既有积极一面,也有消极一面。 在执行Python代码时,我们会遇到运行时错误。...首先,让我们来解释一下指针是什么。 假设有一个变量。这个变量是一个整数,值设置为5。那么,变量与它值是一个意思,比如x = 5,x是变量名称,值为5。 在C++中,变量是通过值传递给函数。...我们可以修改上述函数,让它接受指针作为参数。这样修改可以减少程序占用内存量。而且还不会创建不必要重复变量。 如下函数可以直接修改变量值。...在C++中,使用引用比使用指针更好,因为你可以轻松地修改调用函数,而不会改变调用所表示语义。 指针是一个复杂主题,程序员会经常因为使用指针而造成内存管理错误。...Python是适合初学者编程语言,因此Python中没有这种复杂类型。 06 最终建议 我有什么建议?Python还是C++取决于你需要实现解决方案。

    1.4K10

    API设计原则 – QT官网设计实践总结

    似乎没有什么人通用和有意义方式用过QAbstractSocket指针(或者 能 通用和有意义方式使用QAbstractSocket指针)。...【译注】:这是传引用和传值差别了,因为传值会有对像拷贝,传引用则不会。所以,如果对像构造比较重的话(换句话说,就是对像里成员变量需要内存比较大),这就会影响很多性能。...但通用准则是const函数不能改变类可见状态。『状态』意思是『自身以及涉及职责』。并不是指非const函数能够改变自身私有成员,也不是指const函数改变不了。...阅读使用API代码方式编写用例,且验证这样代码是可读。 还有其他验证方法,比如 让别人使用API(看了文档或是先不看文档都可以) 给类写文档(包含类概述和每个函数) 6....6.3 枚举类型及其值命名 声明枚举类型时,需要记住在C++中枚举值在使用不会带上类型(与Java、C#不同)。

    2.7K20

    浅论C++复杂

    但是templates即程序库也可以以其他方式建立起来。STL有很多独特处理方法,使用STL编程时,需要遵循它规则。...C++语言复杂原因 C++复杂真正原因是什么?对此,仁者见仁智者见智。因为是学院派东西吗?不,学院派出来东西就一定复杂吗?这个理由站不住脚。...(4)C++是一门成熟编程语言。并不是说其他编程语言不成熟。成熟是一种相对概念。C++语言在其30多年发展和使用过程中,开发了无数成功软件系统,积累了丰富成功案例和可重用资源。...换句话说,问题不在于C++复杂性,而在于使用C++的人有没有有效控制这种复杂性。 那么,如何应对C++复杂性,下面给出几点建议。...所以掌握一门优秀设计思想(比如说优先使用组合而不是继承),或者遵循C++社群这些年积攒下来只会,或者说干脆只使用C++语言中C with Class部分规避复杂风险,都是程序员需要不断学习和不断实践

    1.1K20

    2022年编程语言排名,官方数据来了,让人大开眼界。「建议收藏」

    通常被认为是最好编程语言,因为它非常平易近人。它是一种快速、易于使用且易于部署编程语言,广泛用于开发可扩展 Web 应用程序。...[C/C++] 为理解更复杂编程语言奠定了基础 [C/C++] 多设备、多平台应用程序开发首选语言 [C++] 提供高度可移植性 [C] 具有一组功能模块和块面向过程语言。...[C++] 缺点: 复杂语法 [C/C++] 不支持程序命名空间 [C] 无法解决现代现实世界编程挑战 [C] 与其他基于 OOP 编程语言相比,效率较低面向对象系统 [C++] 需要手动创建高级构造...难度级别:容易到中等 职业前景:不如其他人好,因为它需求量不大 优点: 由于不允许使用指针类型,因此比 C 和 C++ 安全得多 能够使用共享代码库 自动可扩展和可更新 面向组件、面向对象编程语言...Matlab Coder 允许转换代码用于其他编程语言,例如 C++、Java 和 Python 平台无关 缺点: 不能免费使用,需要购买许可证 超出数值计算范围应用不多 处理交叉编译过程中产生错误需要丰富知识和经验

    12.1K51

    ios 笔试题3

    static作 用,用于类呢?还有extern c作用 const 意味着"只读",下面的声明都是什么意思? ...并给出三个不同例子。 一个定义为 volatile变量是说变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量值了。...这句话意思是栈顶地址和 栈最大容量是系统 预先规定好,在WINDOWS下,栈大小是2M(也有的说是1M,总之是一个编译时就确定常数),如果申请空间超过栈剩余空间时,将提示 overflow...堆则是C/C++函数库提供,它机制是很复杂。 16.什么是键-值,键路径是什么 模型性质是通过一个简单键(通常是个字符串)来指定。视图和控制器通过键 来查找相应属性值。...Objective-C 与 C++ 可混合编程 缺点:  1) 不支援命名空間  2)  不支持运算符重载  3) 不支持多重继承   4) 使用动态运行时类型,所有的方法都是函数调用,所以很多编译时优化方法都用不到

    72910
    领券