C++
羡长江
这个作者很懒,什么都没留下…
展开
-
派生类访问基类友元
派生类通过显示类型转换来访问基类的友元函数。原创 2023-08-17 22:41:24 · 139 阅读 · 2 评论 -
继承和动态内存分配
基类father中,包含了使用new时需要的特殊方法:析构函数、复制构造符函数和重载赋值运算符。现在从基类father中派生son类,son类不使用new。son中不需要显式析构函数,复制构造函数和赋值运算符,为什么呢?析构函数:son中没有定义析构函数,编译器会定义一个不执行任何操作的默认析构函数。而派生类son的默认析构函数会调用基类father的析构函数,因为派生类中新增的成员不需要执行任何特殊操作,因此默认析构函数就足够了。原创 2023-08-17 21:46:22 · 125 阅读 · 2 评论 -
C++实现一个简单的String类
头文件声明类string1.h#pragma once#include<iostream>using namespace std;class String{private: char* str; int len; static int num_strings;public: static const int CINLIM = 80;public: //构造和析构 String(const char*);// 构造函数 String();//默认构造函数原创 2023-08-16 16:25:27 · 83 阅读 · 2 评论 -
友元的使用
这里house类将dog类中的成员函数visit()作为友元,需要在house类内进行声明,所以需要在house类之前先声明dog类及其成员,不然会报错。原创 2023-08-12 17:07:14 · 82 阅读 · 1 评论 -
静态成员变量和静态成员函数
/static 声明静态成员变量。通过类名加作用域解析符调用。用static在类内声明。原创 2023-08-11 16:33:14 · 85 阅读 · 1 评论 -
定位new运算符
这里pd4和pd2的地址相同,pd4的值覆盖了pd2的值,为了能继续buff中创建数组,且不覆盖之前的值,需要计算一个偏移量。通过定位new运算符将p2放在buff数组中,p2和buff的地址都是00007FF66D9BF440。在pd2的基础之上,通过定位new运算符将数组pd3放在buff中,pd4会覆盖在原来pd1的内存位置。作用:定位new运算符让我们在动态申请内存时,可以指定要使用的内存位置。原创 2023-08-05 21:22:27 · 144 阅读 · 2 评论 -
静态持续变量链接性
C++中,静态持续变量有三种链接性1.外部链接性:函数外声明,全部文件可用2.内部链接性:用static在函数外声明,作用域为当前文件3.无链接性:用static在代码块中声明,作用域在代码块中。原创 2023-08-03 17:22:58 · 77 阅读 · 0 评论