zoukankan      html  css  js  c++  java
  • 【C++王桂林】

    第三章

    封装:

    • 权限控制
    • 数据和行为在一起

    声明与实现分离:

    类中函数不占空间的

    默认参数只能在声明上。

    第四章

    • 构造器
      类中的默认参数只能在声明处,不能在定义处。

    • 拷贝构造器
      调用拷贝构造器。

    • private
      在同类之间是没有隐私

    类中没有new新空间就不需要析构器。

    sizeof、strlen

    strcpy、memcpy
    strcpy:根据’’确定拷贝结束位置;
    mempy:拷贝的起始位置,以及拷贝的长度进行拷贝;

    赋值运算符重载。

    深拷贝

    数据在栈上还是堆上

    1. 系统提供默认的赋值运算符重载,一经实现,不复存在。
    2. 系统提供的也是等位拷贝,也就是浅拷贝,会造成内存泄漏,重析构。
    3. 要实现深深的赋值,必须自定义。
    4. 自定义面临的问题有三个:
      • 自赋值
      • 内存泄漏
      • 重析构
    5. 返回引用,且不能用const修饰。

    深拷贝代码

    class A()
    {
    public:
     	A()
    	{
    		cout << this << " constructor"<<endl;
    	}
    	~A()
    	A(const A  & another)
    	{
    	 	cout<<this<<" cpy construct from"<< &another<<endl;
    	}
    	A & operater operator =(const A &another)
    	{
    		cout<<this<<" operator= "<<&another<<endl;
    	}
    };
    
    • 传对象与传引用

      • 对于对象在函数中传引用会比拷贝构造效率高得多。
      • 传引用等价于,扩大了原对象的作用域。
    • 引用与返回

      • 栈上的对象是可以返回的,但不能返回栈上的引用(除非返回对象自己)

    第五章

    • 类中的指针
      定义类中的指针,该指针为类整个命名空间下的一个字节偏移量;在这里插入图片描述
    • 函数指针数组
    void (*pa[ ])() = {f, g, i, j};
    
  • 相关阅读:
    强化学习基础
    大数据核心技术
    大数据用到哪些技术?
    机器学习算法
    机器学习概述
    java进程占用系统内存高,排查解决
    Vmbox Centos7安装完毕后无法联网的解决方法
    Java使用枚举优化大量if else
    java解析多级Json中的数组
    VSCODE安装美化JSON插件
  • 原文地址:https://www.cnblogs.com/bitbitbyte/p/12536624.html
Copyright © 2011-2022 走看看