
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不再冲突了。C++中域有函数局部域、全局域、命名空间域、类域;域影响的是编译时语法查找一个变量/函数/类型出处(声明或定义)的逻辑,有了域
public:// 成员函数(Member Function / Method)perror("malloc 申请空间失败");return;_top = 0;// 此处省略扩容逻辑,后面完整版会补上private:// 成员变量(Member Variable / Attribute)// 分号不能省略class后跟类名,花括号内是类体(Class Body),类定义结束后的分号不可省略——这是
对自定义类型,newdelete与mallocfreeclass Apublic:~A()private:int _a;int main()// malloc/free —— 不开辟对象,只开辟内存// 没有输出 A()free(p1);// 没有输出 ~A()// new/delete —— 开辟内存 + 构造对象 + 析构对象// 输出 A():地址delete p2;// 输出 ~A():地
public:protected:string _name = "张三";class Student : public Person { // public 继承public:protected:int _stuid;// 学号public:protected:// 职称Student和Teacher不再需要重复定义姓名、地址、电话——继承自Person的部分直接可用。💡 背景补充:C 语言中类
本文深入探讨C++类的默认成员函数机制,重点介绍构造函数、析构函数和拷贝构造函数的作用及实现要点: 构造函数(Constructor) 替代手动Init函数,对象创建时自动调用 规则:无参构造/全缺省构造/默认构造只能存在一个 编译器生成的默认构造对内置类型不初始化,对自定义类型调用其默认构造 析构函数(Destructor) 对象生命周期结束时自动调用,释放对象持有的资源 规则:无返回值无参数不
无论你是否显式写了初始化列表,构造函数都有初始化列表;无论你是否在列表中显式初始化成员,每个成员都要走初始化列表。你没管的内置类型——编译器爱初始不初始;你没管的自定义类型——编译器调用它的默认构造。
如果一个栈类需要同时支持intdouble三种元素类型,没有模板的话就需要写三个几乎一模一样的类。public:, _size(0){}~Stack()// RAII——析构时释放内存private:T* _array;// 类外定义成员函数——需要用 template 前缀 + Stack<T>:: 作用域限定// 扩容逻辑略++_size;类外定义成员函数时,每次都要写上前缀,函数名用而不是—
—抽象类不能实例化。
在深入命令之前,先回到原点——什么是权限?权限的本质只有一个:确定什么能做,什么不能做。 它是一张"允许清单",操作系统每收到一个操作请求,就去查这张清单——符合条件就放行,不符合就拒绝。为什么需要权限?两个核心原因:理解权限有一个关键认知:权限的首要限制对象是人(身份),不是文件。 权限始终围绕"谁(角色)能对什么资源做什么操作(属性)"展开。"权限"和"角色"是绑定的——对一个文件做操作之前,
Claude Code 配置全解析(24 项)







