240 投稿
收录了133篇文章 · 67人关注
  • 026 C++ 中 char s[] 和 char *s 的区别

    字符串 char *s="hello"; 与 char s[]="hello";,看似都是将 hello 字符串的地址赋值给指针 *p。 但是前...

  • 025 C++ 函数调用运算符

    如果类重载了函数调用运算符,则可以像使用函数一样使用该类的对象,因为这样的类同时也能存储状态,所以与普通函数相比它们更加灵活。 上面的类只定义了...

  • 024 定位 new 表达式

    定位 new 表达式 尽管 operator new 函数和 operator delete 函数一般用于 new 表达式,然而它们毕竟是标准库...

  • Resize,w 360,h 240
    023 C++ 控制内存分配

    某些应用程序对内存分配有特殊的需求,因此我们无法将标准内存管理机制直接应用于这些程序。它们常常需要自定义内存分配细节,比如使用关键字 new 将...

  • Resize,w 360,h 240
    C++ 禁止用户使用 new 的方式创建堆对象

    C++ 中可以通过重载 new 和 delete 操作符,来禁止用户使用 new 的方式创建堆对象的,但是我认为是没有办法完全禁止用户创建堆对象...

  • Resize,w 360,h 240
    C++ 如何保证一个对象只能在堆上生成?

    因为 C++ 是静态绑定语言。在编译过程中,所有的非虚函数调用都必须被解析完成。即使是虚函数,也需检查可访问性。 当在栈上生成对象时,对象会自动...

  • 022 C++ 头文件保护

    目前头文件保护一般涉及到两个宏: #pragma once用来防止某个头文件被多次include;#ifndef,#define,#endif用...

  • 021 交换操作

    除了定义拷贝控制成员,管理资源的类通常还定义一个名为 swap 的函数。对于那些与重排元素顺序的算法一起使用的类,定义 swap 是非常重要的。...

  • 020 引用计数

    引用计数的工作方式: 除了初始化对象外,每个构造函数(除拷贝构造函数外)还要创建一个引用计数,用来记录有多少对象与正在创建的对象共享状态。当我们...

  • 019 赋值运算符最佳实践

    当我们编写赋值运算符时,有两点需要记住: 如果将一个对象赋予它自身,赋值运算符必须能正确工作; 大多数赋值运算符组合了析构函数和拷贝构造函数的工...

专题公告

基础学习,记录分享经验,交流学习成长