C++基础
bulangman277
努力生活的普通大学生
展开
-
如何定义一个只能在栈(堆)生成对象的类?
在栈上生成对象一般地,当我们使用new操作符生成类对象时,存在以下两个步骤:new操作符首先底层调用malloc在堆上分配内存地址,并将其分配给对象然后调用构造函数所以,如果通过new创建类对象,可以通过将new和delete运算符重载为私有。在堆上生成对象一般地,当我们简单创建类对象时(不通过new),类对象是保存在栈上地。那么如何将其保存在堆上呢?首先,C++是静态绑定成员,由编译器去管理栈上对象的声明周期。编译器在为类对象分配栈空间时,会先检查类的析构函数的可访问性,如果析构函数不可原创 2022-04-11 12:44:58 · 451 阅读 · 0 评论 -
C++ const那些事
为什么要把类对象定义成const,即定义成const类对象?也许是为了保持严谨?虽然我认为一个类对象定义成常量与否问题不大。可能是配合const成员函数一同服用吧。const成员函数又是怎么一回事?当我们有一个类:class Sales_data{ string isbn() const {return bookNo;} string bookNo;};Sales_data total; //定义一个类对象当调用total.isbn();时,成员函数会通过一个名为t原创 2022-04-04 16:56:21 · 889 阅读 · 0 评论 -
C++构造函数的种类及其作用
C++中有四类构造函数:默认构造函数、初始化构造函数、拷贝构造函数和移动构造函数。当有了有参数的初始化构造函数,编译器就不会提供默认构造函数了。默认构造函数和初始化构造函数:class Student{public: //默认构造函数 Student() { num=1001; age=18; } //初始化构造函数 Student(int n,int a):num(n),age(a){}priva原创 2022-03-15 13:35:28 · 1896 阅读 · 0 评论 -
C++ 重载、重写及其区别
C++ 重载、重写及其区别原创 2022-03-13 20:39:05 · 2611 阅读 · 1 评论 -
C++内存泄漏及内存对齐
C++内存泄漏原创 2022-03-13 18:55:53 · 1506 阅读 · 0 评论 -
C++局部变量、全局变量、static变量 (堆、栈、静态存储区)
共有两种变量存在静态存储区:全局变量static变量(包括static全局变量和static局部变量)在没有static关键字出现前,只能用全局变量来实现static的功能,之后static不仅实现了全局变量的功能,还做到了可以限制变量的使用范围。存储在静态存储区的变量在程序运行的开始就进行初始化,也是唯一的一次初始化。类中的static静态成员:静态成员函数不含有this指针静态成员可以独立访问,无需创建对象然后下标访问类的静态成员函数属于整个类,而不是属于类的对象调用。 所以他没有原创 2022-03-13 16:34:22 · 2258 阅读 · 0 评论 -
C++ Primer 知识点(个人笔记)持续更新···
C++ Primer知识点(个人笔记)持续更新···原创 2022-02-24 16:20:53 · 810 阅读 · 0 评论 -
C++ #include “ “与<>有什么区别
一般来说,用#include<>去查找标准库头文件,用#include" "去查找该目录下的自定义头文件。原创 2021-12-17 14:44:51 · 938 阅读 · 0 评论