ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++知识点笔记

2021-02-13 20:33:31  阅读:125  来源: 互联网

标签:知识点 const 指向 int 笔记 对象 C++ 析构 构造函数


1 对象间的关系

  1. 包含
    一个对象是另一个对象的属性。
  2. 继承
    一个对象是另一个对象的特例。
  3. 关联
    一个对象的引用是另一个对象的属性。(没有特定规范)
    强关联:引用
    弱关联:指针

2 虚表指针
当对象中有虚函数时,
调用 构造函数、拷贝构造函数开始第一件事就是设置虚表指针指向该对象
析构函数是重置虚表指针

析构函数可以设计成虚的,构造函数不可以
没写析构函数的话,系统不会自动生成析构函数,只有一个语义的析构

new delete new[] delete[]

3 const 赋值兼容性规则

 int a = 10;
 int *p = &a;//p指向a,可以改变a的值,也可以值向别的变量。
 
 const int *p = &a;//p指向a,但不能改变a的值,但可以指向别的变量。
 
 int * const p = &a;//p指向a,可以改变a的值,但不可以指向别的变量。
 
 const int * const p = &a;//p指向a,不能改变a的值,也不能指向别的变量。

普通对象优先调动普通方法,没有普通方法也可以调动常方法。

常对象只能调动常方法。

4 C++中无法获取返回值

int fun()
{
    int a =10;
    return a;
}

5 自旋锁

相对于互斥锁,自旋锁是一种轻量级的锁。
别的线程获取了锁,CPU依然占用着该线程资源。

而互斥锁在需要等待时,不会一直空转消耗CPU。
会阻塞并切换到别的线程执行,较为耗时。

因此,在锁的竞争不繁忙,和该锁保持的代码执行时间较短的情况下,可以使用自旋锁,不会因为等待时间长而浪费CPU资源。

标签:知识点,const,指向,int,笔记,对象,C++,析构,构造函数
来源: https://blog.csdn.net/weixin_45629738/article/details/112574002

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有