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};
    
  • 相关阅读:
    Leetcode Binary Tree Preorder Traversal
    Leetcode Minimum Depth of Binary Tree
    Leetcode 148. Sort List
    Leetcode 61. Rotate List
    Leetcode 86. Partition List
    Leetcode 21. Merge Two Sorted Lists
    Leetcode 143. Reorder List
    J2EE项目应用开发过程中的易错点
    JNDI初认识
    奔腾的代码
  • 原文地址:https://www.cnblogs.com/bitbitbyte/p/12536624.html
Copyright © 2011-2022 走看看