c++语言精进
c++语言学习的一些记录
ryontang
这个作者很懒,什么都没留下…
展开
-
多进程多线程
并发编程有两种模型一种是多进程,一种是多线程对于多进程来说,每个进程进程只有一个线程,进程间是可以相互通信的,进程中通信的方式有很多种,比如文件,消息队列,管道,第二种并发模型是多线程,对于多线程而言,一个进程可有两个或多个线程,线程之间通过共享内存的方式进行通信,那么对于这两个并发模型而言,各自的优缺点:多线程:相对于一个进程而言,多线程的启动速度快,因为操作系统需要分配一系列的内部资源去管理进程,线程通常被认为是更轻量级的,开销更低,进程的开销更大,(操作系统需要对进程提供很多的保护,而且.原创 2020-10-17 17:21:21 · 197 阅读 · 0 评论 -
linux系统知识
进程线程labuladong关于进程线程文章小灰原创 2021-02-28 16:44:50 · 61 阅读 · 0 评论 -
内存高级话题
18.1 new,delete的进一步认识18.1.1 总述与回顾内存有关的高级用法,如内存池等18.1.2 从new说起new类对象时,加与不加括号的差别A *pa=new A() // 带号的写法,类A的成员变量被初始化为0A *pa2=new A // 这种写法,m_i成员变量中是随机值但是增加了一个构造函数后,情况又有所不同,初始化的工作交给构造函数因此不一定会初始化为0...原创 2021-02-07 19:50:18 · 99 阅读 · 0 评论 -
c++并发与多线程
并安、进程、线程的基本概念并发表示两个或更多任务同时发生因为有多个CPU就可以同时做多件事情线程数量就可以理解为并发的任务数量可执行程序一个可执行程序运行起来就相当于创建了一个进程线程每一个进程都有一个主线程且唯一主线程从北京到深圳编写代码创建其他线程从北京到南京把线程理解成一条代码的执行通路,一个新线程代表一条新的通路17.1.2 并发的实现方法多进程并发和多线程并发多进程并发:进程之间的通信手段比较多,如果是同一台计算机上的进程之间的通信可以使用管道、文件原创 2021-01-17 22:15:14 · 470 阅读 · 0 评论 -
c++面试知识总结
子类能够从父类继承什么,不能从父类继承什么?能:派生类能够继承其基类的成员,但是基类必须将它的两种成员函数区分开来:一类是基类希望其派生类进行覆盖的函数;另一类是基类希望派生类直接继承而不要改变的函数;派生类可以继承定义在基类的成员,但是派生类的成员函数不一定有权访问从积累继承而来的成员(关于权限访问参考几种继承方式)派生类构造函数尽管在派生类对象中含有从基类继承而来的成员,但是派生类并不能直接初始化这些成员,派生类也必须使用基类的构造函数来初始化它的基类部分。继承与静态成员:如果基类定.原创 2020-11-16 09:01:55 · 75 阅读 · 0 评论 -
类与对象
移动构造函数右值引用右值:即将消亡的值就是右值,函数返回的临时变量也是右值,&&n, 可以绑定到即将消亡的值,即右值原创 2020-09-16 08:45:33 · 132 阅读 · 0 评论 -
p35_c++单目运算符重载为成员函数(郑莉老师)前置与后置运算符的区别_右值与左值
在一开始学习基本的算术运算时,有很多同学存下了这样的疑惑:前置++和后置++到底是怎么实现这个差别呢?而且很多同学也分不清楚,他到底差别在哪?# 重载前置++和后置++为时钟类成员函数#include <iostream>using namespace std;class Clock{// 时钟类定义public: Clock(int hour=0, int minute=0; int second=0); void showTime() const; // 前置单目运算.原创 2020-08-10 15:20:49 · 327 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(三十四)模板一
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(三十四)模板一《课时34 模板 I》什么是templates?有两种东西,它们结构相同,类型不同泛类嘛!但是这样不安全。重用源代码,类型成为参数函数模板,function template比如排序函数,就是函数模板,参数类型不同swap function templatetemplate // template 与 clas...原创 2019-08-14 23:08:24 · 436 阅读 · 3 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十一)引用
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十一)引用高级语言里边,比方C++,堆里边存放你动态分配的变量,比方用malloc或new函数。程序自动分配的栈不是你能利用的,而是程序自身用它来存放一些函数参数啊,临时变量啊,返回地址什么的。如果你想在程序中用到栈,那么就得自己定义栈的结构,也可以用标准库中的vector,差不多就是个栈,先进后出嘛。在C++里边,堆内存用的地方很多,栈么…...原创 2019-08-14 12:20:12 · 355 阅读 · 0 评论 -
(c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十八)静态对象)
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十八)静态对象![Screenshot from 2018-04-12 10:51:38.png](https://img-blog.csdnimg.cn/20190813221211731.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR...原创 2019-08-13 22:36:34 · 159 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十六 二十七)拷贝构造一,二
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十六 二十七)拷贝构造一,二拷贝构造1拷贝构造2拷贝构造1C++初始化变量,用“()”和用“=”是等价的。例如:int i=1;int i(1);是等价的。初始化对象时也一样,如果类A有一个A(int i){}的构造函数,那么A a(1);和A a=1;是等效的,这也是拷贝构造函数能起作用的原因前面有这个变量的类型叫定义,定...原创 2019-08-13 21:18:14 · 163 阅读 · 1 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十五)引用再研究
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十五)引用再研究引用再研究引用再研究1.类的成员为引用类型(无法在声明时初始化)必须在构造函数初始化列表该成员变量初始化2.函数返回值为引用类型,写在return后一定是直接的变量 与指针机制相同,指针不能返回一个本地变量的地址,引用也不能返回一个本地变量(引用的实质是指针常量),当返回一个引用,可将其用作左值和右值3,函数参数为...原创 2019-08-13 20:02:56 · 190 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十三)(二十四)多态性 多态的实现
@[TOC](c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十三)(二十四)多态性 多态的实现)多态性virtual是指父类的所有子类中,如果重新写了一模一样的成员函数(名字一样,参数列表也相同),那么那么父类和子类中的这个一样的成员函数就是有联系的,如果不加这个virtual,子类和父类的同名函数是没有联系的;子类中的同名的成员函数前面可以加virtual也可以不加,即使不加,这个成...原创 2019-08-13 16:54:25 · 181 阅读 · 0 评论 -
C语言程序设计.浙江大学.翁恺 (82)指针 (83)指针的使用
C语言程序设计.浙江大学.翁恺 (82)指针 (83)指针的使用指针指针的使用指针最常见的错误指针‘*’ point : 一个存地址的变量这里需要区分一般变量的按值传递:g(i)函数传入i,只是拿i的值,函数里面的k与i没有什么关系:而通过指针变量P,得到i的地址,f()函数拥有访问外部i的能力那如何通过地址访问(访问就是读写)这个地址上变量的值呢?通过运算符*指针的使...原创 2019-08-12 22:07:59 · 403 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十)不可修改的对象
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(二十)不可修改的对象1.可以设置函数为const,如:void f() const{}表示在这个函数中this为const,即次函数不修改任何成员变量的值,这种使用方式需要在原型和定义时都加上const。若类中的一个成员变量定义为const,也必须要在构造函数列表进行初始化。2.若将一个类的对象定义为const,则必须要有构造函数初...原创 2019-08-12 18:10:56 · 305 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十七)(十八)(十九)函数缺省参数值 default value | const | 内联函数
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十七)(十九)函数缺省参数值 default value | const十七函数重载一定是参数表不一样,返回类型不一样不构成函数重载。default argument是写在h文件里面的。尽量少使用default value,会造成误读。十九const不同于常数 只是编译器认为你不会去修改它const与指针,指针可能是const,指...原创 2019-08-10 18:17:35 · 193 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十五 十六)继承 子类父类关系
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十五)组合是类里的成员变量,这个成员变量是其他类的对象。继承使用已有的类,拿出来在加一点改造。interface中有data,有function 。超集,Astudent是Bperson的超集,往往B是A的父类,也就是A需要在B的基础上再加上新的定义或限制才能变成A(作功能扩充)。继承:即B类的子子孙孙类的组合:即A类...原创 2019-08-10 11:15:01 · 178 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十三)(十四) 初始化列表 对象组成
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录innicialiazation list代码innicialiazation list初始化赋值,y(ya)这样的写法和在构造函数中写y = ya是有区别的y(ya)比构造函数早执行,这就是区别。如果类成员是一个对象,将有不同;建议:类的所有成员变量都在initialzation中做初始化,而不要在构造函数中做赋值代码// An ...原创 2019-08-10 09:51:07 · 166 阅读 · 0 评论 -
[侯捷]C++ STL 体系结构与内核分析--从平地到万丈高楼(数据结构)
01认识headers、版本、重要资源泛型编程:即使用Template,而STL就是使用了泛型编程重要资源,编程能用到reference另一个网站,将STD的内容已经分为了六大类另一个p2 STL体系结构基础介绍注意容器的 c.end()指的是容器末端后一个的位置,因此你如果根据end去寻内容会出错: == *(c.end()) ==遍历容器:== c++11新的for范围l...原创 2019-09-06 11:17:14 · 688 阅读 · 1 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十二)访问限制——private/public/protect/friend/struct
关于友元:我承认了这个朋友,所以这个朋友可以访问我的私人的东西,但是这不代表我可以访问他私人的东西,因为他未必当我是朋友关于private:针对类而不是对象,同一类的不同对象可以访问各自的private即:private:成员函数可以使用,同一个类的对象是可以访问对方的私有变量的,也就是private只是对类来说是私有的而不是对对象来说的。friend声名的可以访问frien...原创 2019-08-09 23:15:07 · 252 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(十一)New & Delete
《课时11 new&delete》本地变量malloc动态地得到一块内存C++用新了两个新的运算符来动态分配内存new Stashnew 类的时候,会分配空间并且调用构造函数new int;new Stash;new int[10];运算符必然有返回值。deletedelete p;delete[] p;先调用析构函数,再释放空间。int* psome =...转载 2019-08-09 22:53:20 · 333 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(九、十)构造与析构 对象初始化
九:init()函数:对象的变量初始赋值constructor 构造函数:对象被创建时自动被调用Tree t(12),圆括号表示调用构造函数,12被传给idestructor 析构函数:对象要被结束掉的时候被自动调用,不能有参数大括号:对象的域,在大括号之外对象不存在大括号结束时destructor被调用大括号指的是main函数的scope来源:https://study...原创 2019-08-09 22:03:53 · 123 阅读 · 0 评论 -
c++ 浙大翁恺老师 面向对象程序设计听课笔记收录(七)(八)成员变量与成员变量的秘密
(七)本地变量 Local variable成员变量在一个函数里面定义了一个重名的本地变量,所以在这个成员函数里本地变量优先。成员变量的作用域::是类,在类的成员函数里面使用,类声明里的成员变量也属于声明,而不是定义。而本地变量只能在定义那个的成员函数里面(如果你在成员函数里面使用某个成员变量, 不要把成员变量作为形参,直接使用即可)如果你在头文件里面声明了一个全局变量,比如 e...原创 2019-08-09 21:15:59 · 314 阅读 · 0 评论 -
c++ 浙大翁恺老师面向对象程序设计听课笔记收录(二十九)静态成员
静态成员:静态成员变量对类的所有成员函数都是全局的,但是在这个类的所有不同对象之间是保持一致的。在源文件作用域内,只初始化一次static成员变量,不依赖于某一个类存在的东西,是class-widehidden可以靠 private protect实现, persisitent靠statia:全局数据区提供一个地方为这些变量,并在 .cpp文件里初始化它们但是在 .cp...原创 2019-08-09 19:57:58 · 281 阅读 · 0 评论 -
c++ 多线程同步——mutex互斥锁,unique_lock
1.线程的同步(unique_lock的使用)unique_lock中的unique表示独占所有权。unique_lock独占的是mutex对象,就是对mutex锁的独占。用法:(1)新建一个unique_lock 对象(2)给对象传入一个std::mutex 对象作为参数;std::mutex mymutex;unique_lock lock(mymutex);因...原创 2019-08-09 17:59:53 · 3219 阅读 · 0 评论 -
c++ static 与 extern 全局变量,局部变量,以及他们的作用域
静态变量与全局变量关键字C++之static及其作用域见帖子:总结的非常好1.总的来说,static, 就是全局变量的周期,但是作用域是局部的作用域:虽然一直存在,其余函数不能访问,其余源文件更不能(其他源文件指的是B.cpp)特别的类成员的static(C++)/******************************************/静态数据成员和普通数据成...原创 2019-08-09 11:19:24 · 216 阅读 · 0 评论