C++基础
C++基础
baidu_38737437
这个作者很懒,什么都没留下…
展开
-
类的静态成员(static)和常量成员(const)
一、类的静态成员(static) 静态数据成员的特点: 静态成员不属于某一个对象,而是属于整个类(定义在数据段) 静态成员供所有对象共享,每个对象可以调用且修改。一个对象修改,其他对象也跟着变化 可以直接通过类名直接访问 class Student { private: static int num; public: Student(){} ~Student(){} }; int main() { Student student1; student1.num = 20;//可以通原创 2020-07-11 10:28:21 · 2384 阅读 · 1 评论 -
多态和虚函数
一、多态 多态是面向对象程序设计的一个重要特征,多态就是一个东西有多重状态,具有不同功能的函数可以用一个函数名,这样就可以用一个函数名实现不同的功能。 静态多态:静态多态是通过重载实现的,在编译的时候确定调用哪个函数 动态多态:动态多态 ...原创 2020-07-11 00:25:25 · 206 阅读 · 0 评论 -
static关键字
一、静态变量的特点 静态变量的意思就是该变量在内存中的位置不会变。当我们初始化以后,静态变量就一直存在于一开始初始化的内存之中,即使代码块结束或者函数结束,内存都不会释放。直到程序结束。 静态变量存在于全局数据区。 静态局部变量定义时建议要进行初始化。如果未初始化,编译器自动将它初始化为0 静态变量只初始化一次,下一次再遇到初始化的时候会直接跳过 void func() { static int a = 10; a++; cout<<a<<' '; } int main(原创 2020-07-10 16:45:30 · 83 阅读 · 0 评论 -
C++中的深拷贝与浅拷贝
在对对象进行拷贝的时候,如果我们没有自己编写拷贝构造函数,则会调用默认拷贝构造函数。 一个例子: #include<iostream> using namespace std; class Stu{ int num; char *name; public: Stu() { name = new char [20]; cout<<"stu"<<endl; } ~Stu() { cout<<"~Stu"<<e原创 2020-07-10 13:52:01 · 107 阅读 · 0 评论 -
手写string函数
class String { private: char *data_; int len_; static const char kEmpty[]; public: String():data_(nullptr),len(0) {} ~String() { delete []data_; } String(const char *str,int len) :data:(len > 0 ? new char[len+1]:nullptr),len_原创 2020-07-07 16:06:00 · 124 阅读 · 0 评论 -
手写str的函数
//用于把资源内存(src)拷贝到目标内存(dest),拷贝数量由size决定 void *m_memcpy(void *desc,const void *src,size_t size) { if(desc == nullptr || src == nullptr) return nullptr; char *pdesc; char *psrc; if(src >= desc || (char *)desc >= (char *)src + n-1){ pdesc = (ch原创 2020-07-07 12:43:31 · 172 阅读 · 0 评论 -
C++ const关键字
1.用于只读变量 关键字const用来定义只读变量,被const定义的变量它的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量,这也就意味着必须在定义的时候就给它赋初值。 const定义只读变量的时候,下列两种形式的效果是一样的,不过还是尽量使用第一种形式 const int A = 1; int const B = 1; 2、const与指针 const与指针配合使用的时候,一般就分为两种作用 一是限制指针变量 int *const p = &原创 2020-07-07 12:41:44 · 87 阅读 · 0 评论