C&C++
文章平均质量分 73
C与C++的各种语法高级特效用法等等的讲解、学习、分享、总结
微小的鱼
这个作者很懒,什么都没留下…
展开
-
C++ 高级特性:右值与new
在现代的C++中,左值表示一个可修改并具有持久身份的对象,而右值表示一个临时对象,其值可以用作初始化其他对象左值:表示对象的内存位置,可以在赋值操作符的左边,例如变量名、数组元素或解引用指针。右值:表示一个临时的、短暂存在的值,例如字面量或结果为临时对象的表达式。它们通常不能在赋值操作符的左边。右值引用(通过&&符号表示)是 C++11 引入的一种新类型的引用,右值引用主要用于捕获临时对象(右值),这些对象通常在表达式求值后就被销毁。原创 2023-08-07 01:23:40 · 339 阅读 · 0 评论 -
placement new理解
因为项目需要所以向几位腾讯的Cpp大佬请教了一下!同时我也整理总结了C++内存管理的几种情况:C++ 内存管理-- new, delete,new[],placement new 总结placement new允许我们将object创建与 已经申请好的内存中,但是没有所谓的 placenment delete。这句话的意识:就是你可以用已经申请的内存来申请对象,但是不建议delete,比如...原创 2019-01-31 23:49:46 · 1476 阅读 · 0 评论 -
More effective C++ 总结:操作(2)
1. opertor分为操作符重载与隐式转换: • 操作符重载 C++可以通过operator实现重载操作符,格式如下:类型T operator 操作符 (),比如重载+,比如下面这个例子template<typename T> class A { public: const T operator+(const T& r...原创 2018-06-09 21:10:43 · 256 阅读 · 0 评论 -
More effective C++ 总结:技术(3)
Class 拥有一个static 对象,:即便从来没有使用过,它也会被构造(及析构)。总结什么是抽象类:其实,在c++中并没有抽象类的概念,要实现抽象类则需要通过纯虚函数实现。纯虚函数指的是只定义函数原型的成员函数。在c++的类中,只要存在纯虚函数,那么该类就变成抽象类。 virtual func()=0;C++ 的接口实现,接口和抽象类都不能实例化,但是在C++中如果在类中只是声...原创 2018-06-09 21:15:42 · 209 阅读 · 0 评论 -
C++11新特性
最近因为工作需要(搞3D渲染引擎开发)重温了C++11的特性!C++11的新特性:(一)变量与基本类型:1.long long类 10位有效数字;2.列表初始化 使用花括号的初始化变量称为初始化列表 int i =0;int i ={0};int i{0};int i(0);3. nullptr变量 有几种空指针的方法: ...原创 2018-11-21 19:34:56 · 178 阅读 · 0 评论 -
C++继承构造函数和委派构造函数
最近开始复习C++11,继承构造函数和委派构造函数不常用所以来看一下,转载一篇感觉写的不错的:原创 2019-01-30 14:43:32 · 286 阅读 · 0 评论 -
C++ 内存管理-- new, delete,new[],placement new 总结
C++应用程序中申请内存基于分配器的实现(std::allocator),而分配器基于C++primitives(new,new[]…),c++primitives基于C语言中的malloc/free…当然越底层的函数效率越高。那我们会想,直接用最底层的实现多好,效率还高.但如果你直接调用底层的函数去实现功能,虽然你的效率提高了,但你的程序的可移植性就会相应的降低.不可否认底层语言的实现,体现出...原创 2019-01-30 17:51:11 · 585 阅读 · 2 评论 -
C++ 14 17新特性总结
c++14函数返回类型auto二、lambda参数auto在C++11中,lamdba函数参数需要被声明为具体的类型。C++14放宽了这一要求,允许lambda函数参数类型使用类型说明符auto。代码简洁,并且可以增强重构。三、[[deprecated]]利用 deprecated 杂注,可以指示函数、类型或任何其他标识符不再受将来版本支持,或者不应再使用它们。#pragma depr...原创 2019-05-26 17:47:49 · 15546 阅读 · 1 评论 -
Haxe简介&Haxe与ActionScript3.0区别
我们公司现在用的是as3转haxe然后最终转成C++的方案;Flash没落:自智能手机普及以来,Flash Player插件的浏览器支持一直在下降,随着HTML5 技术的出现,让网站可以在没有插件的情况下运行包括视频、小游戏在内的视觉元素。许多网站也纷纷转向 HTML 5。1.Haex: 相比其他语言(Java的平台是 JVM,C#的平台是.Net,Action...原创 2019-08-18 23:55:27 · 928 阅读 · 2 评论 -
More effective C++ 总结:基础议题(1)
1. Pointers 与references区别(指针与引用区别) • 指针能为NULL,引用不能为NULL; • 指针可以被重新赋值指向另一个对象,但是引用不总是指向最初的对象; • 当你不能因为指向其他东西而改变其他东西使用引用,其他的使用指针;2.四种强制转换 • static_cast:可以实现C++中内置基本数据类型之间的相互转换。 ...原创 2018-06-09 20:36:04 · 405 阅读 · 2 评论 -
实习之路_C++晋级
看effective C++ 第五章 包括 1. 四种强制转换:const_cast. 常量性转除,就是把一个const的东西转换成non-const的;static_cast 应该就是最常用的那种吧, 强和隐性转换;dynameic_cats 决定对象归属继承体系(消耗大) 把base class的指针或引用像派生类转换; Reinterpret_cast底层转换,实...原创 2018-04-12 17:42:20 · 375 阅读 · 0 评论 -
前置++与后置++区别 以及效率
前置与后置++ 的区别前置++和后置++的区别《C专家编程》中有如下描述(P276,人民邮电出版社):++a表示取a的地址,增加它的内容,然后把值放在寄存器中;a++表示取a的地址,把它的值装入寄存器,然后增加内存中的a的值;(也就是说操作的时候用到的都是寄存器里面的值,原创 2018-02-01 19:56:21 · 6454 阅读 · 1 评论 -
C++面试笔试常见题目(一)
分析下面代码有什么问题? void test1() { char string[10]; char* str1 = “0123456789”; strcpy( string, str1 ); } 参考答案 字符串str1需要11个字节才能存放下(包括末尾的’\0’),而string只有10个字节的空间,strcpy会导致数组越界; 分析下面代码有什么问题? void ...原创 2018-01-31 23:56:05 · 481 阅读 · 0 评论 -
C/C++常见面试题(二)
C与C++的区别这个区别有好多,首先C是面向过程的,C++是面向对象的,所以C里没有类的概念,C++具有封装、继承、多态这样的面向对象特性;然后C++使用了STL模板库;C++在很多概念上对C做了扩展,比如static关键字,在C++中可以用在成员函数前面表示静态成员函数;c++具有流式输入输出,inline关键字,引用变量等新特性。 多态性都有哪些一是编译时的多态性,二是运行时的多态性...转载 2018-02-09 00:55:27 · 215 阅读 · 0 评论 -
C++primer学习笔记(1))
作为大四应届生o( ̄︶ ̄)o 最近为了后续的面试工作地点看C++primer再次深入学习C++写里一点笔记: 如下: 1. C++四种强制转换: 1、static_cast:可以实现C++中内置基本数据类型之间的相互转换,enum、struct、 int、char、float等。它不能进行无关类型(如非基类和子类)指针之间的转换。 int c=static_ca...原创 2018-02-28 22:43:39 · 301 阅读 · 0 评论 -
C++primer标准库(2)
作为大四应届生o( ̄︶ ̄)o 最近为了后续的面试工作地点看C++primer再次深入学习C++写里一点笔记: 如下: 1. io库 • **istream(输入流)类提供输入操作。 • ostream(输出流)类提供输出操作。 • cin,一个istream对象,从标准输入读取数据。 • Cout,一个ostream对象,向标准输出写入数据。 ...原创 2018-03-01 23:32:46 · 181 阅读 · 0 评论 -
C++primer面向OOP程序设计(3)
1.继承: 在C++语言中,基类将类型相关的函数与派生类不做改变直接继承的函数区分对待。对于 某此函数,基类希望它的派生类个自定义适合自身的版本,此时基类就将这此函数声明成 虚函数(virtual function ) 因此,我们可以将Quote类编写to class Quote{ public: std::string isbn() v工rtual ...原创 2018-03-02 00:50:21 · 197 阅读 · 0 评论 -
C++ primer多继承&虚继承(4)
1.多继承 在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的是多重继承(特别是虚拟继承)的实现方式有各种各样的不太明确的结论(尤其是,关于向下转型指针,使用指向指针的指针,还有虚拟基类的构造方法的调用命令)。 如果你了解多重继承是如何实现的,你就能预见到这些结论并运用到你的代码中。而且,如果你关心性能,理解虚拟继承...原创 2018-03-03 23:03:24 · 273 阅读 · 0 评论 -
实习之路_编程规范
实习期间中的笔记,编程规范!1.排版 1) 程序快要采用缩进风格 (更具IDea不同可以不同) 2)相对对立的模块间、变量采用必须加空行 3)教程的语句要风行血,成的表达式在低的优先级字符串 ,操作符在新行之手,画出的新航要进行适当的缩进! 4)循环盘对也是于低山条相似 ...原创 2018-04-08 17:39:19 · 264 阅读 · 0 评论 -
实习之路_Bug的等级以及log的划分
实习期间中的笔记,BUG等级log划分是很重要的(特别是初级工程师,刚刚要进入企业工作的应届生来说==||我就是18界的应届生) **.bug的等级划分:** 五类划分: A类—导致系统崩溃、死机;出现不可挽救的数据丢失或损坏、内存泄露 B类—导致程序模块丢失或未实现;软件错误导致数据丢失;用户需求未实现 C类—发现影响被测功能正确实现的问题 D类—一般性错误或者功能实现不...原创 2018-04-12 14:30:54 · 785 阅读 · 0 评论 -
Java与C++如何处理循环引用问题
最近刷题刚刚研究过这个问题。何为循环引用 如果有两个或者以上的对象,它们彼此引用,就会造成循环引用。如下面的例子class Node { Node next ; } Node a = new Node (); Node b = new Node (); a . next = b ; b . next = a ;代码中,a对象引用了b对象,b对象也引用了a原创 2018-01-31 23:41:39 · 834 阅读 · 2 评论