• 网易云课堂_C++开发入门到精通_章节3: 类、对象和封装


    课时12构造函数与析构函数-2

    构造函数

    构造函数可以有多个

    构造函数可以重载

    构造函数用于隐式类型转换

    class Student
    {
    public:
    	explicit Student(int ssID) :id_(ssID)
    	{
    		std::cout << "constructing student:" << ssID << std::endl;
    	}
    private:
    	int id_;
    };
    
    void func(Student& stu)
    {
    
    }
    

    课时15动态内存分配-1

    动态内存分配

    C语言的动态分配

    malloc/free函数

    内存区域

    全局变量、静态数据、常量->data area

    所有类成员函数和非成员函数代码->code area

    为运行函数而分配的局部变量、函数参数、返回数据、返回地址等->stack area

    动态内存分配区->heap area

    课时18拷贝构造函数-2

    拷贝构造函数

    何时需要定义拷贝构造函数

    类数据成员有指针

    泪数据成员管理资源(如打开一个文件)

    如果一个类需要析构函数来释放资源,则它也需要一个拷贝构造函数

    如果想禁止一个类的拷贝函数,需要将拷贝函数声明为private

    课时19const关键字

    const关键字

    C++提供了const限定符

    指定一个不该被改动的对象

    const限定指针类型

    const出现在星号左边,表示被指物是常量

    const出现在星号右边,表示指针自身是常量

    const数据成员必须使用成员初始化列表进行初始化

    课时21案例讲解--单例设计模式

    案例讲解

    单例设计模式

    案例介绍

    保证在应用程序中,一个类只有一个对象

    案例设计

    将构造函数设置为私有,在类的实现中确保生成对象的个数

    头文件singleton.h

    源文件singleton.cpp,main.cpp

    头文件singleton.h

    #pragma once
    #include <iostream>
    
    class Singleton
    {
    public:
    	static Singleton* getInstance();
    
    	void doSomething();
    	
    	void destroy();
    
    private:
    	Singleton();
    	~Singleton();
    
    	Singleton(const Singleton&);
    	Singleton& operator=(const Singleton&);
    
    	static Singleton* instance;
    };
    

    源文件singleton.cpp

    #include "singleton.h"
    
    Singleton* Singleton::instance = NULL;
    
    Singleton::Singleton()
    {
    	std::cout << "Singleton instance" << std::endl;
    }
    
    Singleton::~Singleton()
    {
    
    }
    
    void Singleton::destroy()
    {
    	delete this;
    	instance = NULL;
    }
    
    Singleton* Singleton::getInstance()
    {
    	Singleton* ret = instance;
    	if (ret == NULL)
    	{
    		instance = new Singleton();
    		ret = instance;
    	}
    
    	return ret;
    }
    
    void Singleton::doSomething()
    {
    	std::cout << __func__ << ", " << __LINE__ << std::endl;
    }
    

    源文件main.cpp

    #include "singleton.h"
    
    int main()
    {
    	Singleton::getInstance()->doSomething();
    
    	system("pause");
    
    	return 0;
    }
    

    课时22案例讲解--valgrind内存检测工具

    Linux安装valgrind命令

    sudo apt-get install valgrind
    

    检查valgrind

    which valgrind
    
  • 相关阅读:
    Java Runtime.exec()的使用
    加密备忘
    maven 配置 Java Servlet API
    flume spooldir bug修复
    修复eclipse build-helper-maven-plugin 异常
    Win10系统安装Office2016错误,提示需要更新客户端的解决方法
    ORA-14300: 分区关键字映射到超出允许的最大分区数的分区
    ORA-14402:更新分区关键字列将导致分区更改(分区表注意)
    oracle 11g自动时间分区备忘
    Oracle计算时间函数(numtodsinterval、numtoyminterval)
  • 原文地址:https://www.cnblogs.com/denggelin/p/6194025.html
Copyright © 2020-2023  润新知