网站平台建设属于固定资产吗线上推广方式

news/2025/9/23 7:13:07/文章来源:
网站平台建设属于固定资产吗,线上推广方式,wordpress 个人简介 换行,网站开发流程图类 ~ ~ ~ 一、面向过程和面向对象初步认识a. 面向过程编程b. 面向对象编程例如#xff1a;无人机送货系统1、面向过程编程方式2、面向对象编程方式 二、类的引入1、定义类的关键字2、栈的手动实现a. C语言实现栈b. C实现栈 三、类的定义类的两种定义方式#xff1a; 四、类的… 类 ~ ~ ~ 一、面向过程和面向对象初步认识a. 面向过程编程b. 面向对象编程例如无人机送货系统1、面向过程编程方式2、面向对象编程方式 二、类的引入1、定义类的关键字2、栈的手动实现a. C语言实现栈b. C实现栈 三、类的定义类的两种定义方式 四、类的访问限定符1. public访问限定符2. private访问限定符3. protected访问限定符 五、类的作用域类成员的访问命名空间的作用域与组织类的作用域与命名空间的关系 六、类的实例化实例化类比 制造汽车 七、类的对象大小的计算内存对齐填充计算类的对象大小的基本原则 八、类成员函数的this指针1. this指针的作用2. this指针的用法3. this指针的特性4. this指针的实际应用a. 成员函数调用成员函数b. 实现链式调用 5. 注意事项 面向对象是一种更高级的编程方式 一、面向过程和面向对象初步认识 当谈论编程范式时 面向过程 和 “面向对象” 是两个重要的概念。 它们描述了编程的 不同方法和思维方式以解决问题和构建应用程序。下面让我们详细了解一下这两种编程范式。 a. 面向过程编程 面向过程编程是一种以流程和步骤为中心的编程方式。它强调的是将问题分解成一系列的 步骤或过程然后按照 严格的顺序 执行这些步骤来解决问题。在面向过程编程中数据和函数或过程是分开的函数操作数据并返回结果。 主要特点 程序的执行流程 面向过程编程关注程序的执行流程按照顺序执行不同的步骤来完成任务。 数据和函数分离 数据和操作数据的函数是分开的函数仅仅作为对数据的操作。 可读性较差 随着程序复杂度增加面向过程编程可能会导致代码的可读性下降因为各个步骤之间的关系不够清晰。 适用场景 面向过程编程 适用于简单的、线性的问题如数据处理、算法等。 b. 面向对象编程 面向对象编程是 一种更具组织性和结构性的编程方式强调将数据和对数据的操作封装为对象。在面向对象编程中数据和函数或方法是紧密关联的对象是数据和方法的一个实例。 主要特点 对象与类 面向对象编程基于对象和类的概念。类是对象的蓝图定义了对象的属性成员变量和方法成员函数。 封装 封装是将数据和操作数据的函数封装在一起隐藏了内部的细节。这提高了代码的安全性和可维护性。 继承 继承允许一个类继承另一个类的属性和方法。这促进了代码的重用和扩展。 多态 多态性允许不同的类共享相同的接口但可以根据具体实现的不同表现出不同的行为。 可读性较高 面向对象编程使代码的结构和关系更加清晰提高了代码的可读性和可维护性。 适用场景 面向对象编程 适用于大型、复杂的应用程序能够更好地组织和管理代码。 例如无人机送货系统 1、面向过程编程方式 在面向过程编程中 关注程序的执行流程将问题分解为一系列的步骤或过程并按照顺序执行这些步骤来完成任务。 · 程序流程 将送货任务分解为一系列步骤启动无人机、导航、取货、交付、返回等。 函数 编写一系列函数来执行每个步骤如StartDrone()、NavigateToLocation()、PickupItem()、deliverItem()等。 全局变量 使用全局变量来存储无人机的状态、目标位置等信息这些变量在各个函数中共享。 可读性 随着任务的复杂性增加代码可能会变得难以维护和理解因为不同步骤之间的关系可能不够清晰。 2、面向对象编程方式 在面向对象编程中关注对象和类的概念将问题中的实体和操作封装为对象和方法。 · 类和对象 定义类如Drone、DeliveryPoint等分别表示无人机和送货点每个类具有属性和方法。 · 封装 封装每个类的属性和操作隐藏内部实现细节。例如Drone类可能有start()、navigate()、pickup()、deliver()等方法。 · 继承 如果系统需要支持多种类型的无人机可以通过继承创建子类实现共性和特性。 · 多态 不同类型的无人机可以共享相同的接口但根据实际类型执行不同的行为提高灵活性。 · 可读性 由于将功能和数据封装在对象内部代码更加模块化每个对象负责自己的操作提高了可读性和可维护性。 二、类的引入 1、定义类的关键字 C定义类的关键字 struct 和 class C 兼容 C 中结构体的用法同时 struct 在 C 中升级成了类 C语言结构体中只能定义变量在C中结构体内不仅可以定义变量也可以定义函数。比如用C语言方式实现的栈结构体中只能定义变量现在以C方式实现我们就会发现struct中也可以定义函数 2、栈的手动实现 a. C语言实现栈 #include stdio.h #include stdbool.h#define MAX_SIZE 100 //C语言结构体中只能定义变量 typedef struct {int data[MAX_SIZE];int top; } Stack;void initialize(Stack* stack) {stack-top -1; }bool isEmpty(Stack* stack) {return stack-top -1; }bool isFull(Stack* stack) {return stack-top MAX_SIZE - 1; }void push(Stack* stack, int value) {if (isFull(stack)) {printf(Stack is full. Cannot push.\n);return;}stack-data[stack-top] value; }int pop(Stack* stack) {if (isEmpty(stack)){printf(Stack is empty. Cannot pop.\n);return -1;return stack-data[stack-top--];} }int peek(Stack* stack) {if (isEmpty(stack)){printf(Stack is empty. Cannot peek.\n);return -1;}return stack-data[stack-top]; }b. C实现栈 #include iostream template typename Tclass MyStack { private:T* data;int top;int capacity;public:MyStack(int size) {capacity size;data new T[capacity];top -1;}~MyStack() {delete[] data;}void push(T value) {if (top capacity - 1) {data[top] value;}else {std::cout Stack is full. Cannot push. std::endl;}}T pop() {if (top 0) {return data[top--];}else {std::cout Stack is empty. Cannot pop. std::endl;return T(); // 默认构造一个类型对象返回}}T peek() {if (top 0) {return data[top];}else {std::cout Stack is empty. Cannot peek. std::endl;return T(); // 默认构造一个类型对象返回}}bool isEmpty() {return top -1;}bool isFull() {return top capacity - 1;} };原来C中结构体的定义在C中更喜欢用class来代替struct。 三、类的定义 class className { // 类体由成员函数和成员变量组成};// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字{ }中为类的主体 注意类定义结束时后面分号不能省略。 类体中内容称为类的成员类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或者成员函数 类的两种定义方式 声明和定义全部放在类体中。 需注意成员函数如果在类中定义编译器可能会将其当成内联函数处理 #include iostream class Person { public:void introduce() {std::cout My name is name and I am age years old. std::endl;} private:std::string name;int age; };类声明放在.h文件中成员函数定义放在.cpp文件中。 注意成员函数名前需要加类名:: 一般情况下更期望采用第二种方式。 四、类的访问限定符 public修饰的成员在类外可以直接被访问protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止如果后面没有访问限定符作用域就到 } 即类结束。class的默认访问权限为privatestruct为public(因为struct要兼容C) 注意访问限定符只在编译时有用当数据映射到内存后没有任何访问限定符上的区别 1. public访问限定符 public是最常见的访问限定符它允许类的成员在类的外部被访问。这意味着无论在哪里我们都可以直接访问类的公有成员。公有成员通常用于表示类的接口即外部代码与类交互的方法。 class Person { public:std::string name;void introduce() {std::cout My name is name std::endl;} };2. private访问限定符 private访问限定符将类的成员隐藏在类的内部外部代码无法直接访问私有成员。这种封装性**保护了类的实现细节确保了数据的安全性和一致性。**私有成员通常用于存储类的内部状态。 class BankAccount { private:double balance;public:void deposit(double amount) {balance amount;}double getBalance() {return balance;} };3. protected访问限定符 protected访问限定符介于public和private之间。类的派生类可以访问基类的受保护成员但其他外部代码无法访问。这在实现继承和多态时很有用允许派生类使用基类的实现细节~ class Shape { protected:int sides;public:Shape(int s) : sides(s) {}int getNumSides() {return sides;} };五、类的作用域 类定义了一个新的作用域类的所有成员都在类的作用域中。在类体外定义成员时需要使用 :: (作用域限定符) 指明成员属于哪个类域 类成员的访问 类的成员可以通过成员访问操作符. 和-进行访问。 在类的作用域内可以直接访问任意成员而在类的外部只能访问公有成员。 私有和受保护成员需要通过公有成员函数来间接访问。 class MyClass { public:int publicMember;private:int privateMember;protected:int protectedMember; };MyClass obj; obj.publicMember 10; // 可以直接访问公有成员// 无法直接访问私有成员和受保护成员 obj.privateMember; // 编译错误 obj.protectedMember; // 编译错误命名空间的作用域与组织 命名空间是一种用来防止命名冲突和组织代码的机制。它允许将相关的变量、函数、类等放置在一个命名空间内以防止全局命名冲突。命名空间还可以嵌套定义形成层次结构。 namespace Math {int add(int a, int b) {return a b;} }int main() {int result Math::add(5, 3); // 通过命名空间访问函数return 0; }类的作用域与命名空间的关系 类的作用域与命名空间的作用域存在一定的联系。 类的定义可以位于全局命名空间中也可以位于其他命名空间内。 通过使用类的全名包括命名空间前缀可以在不同命名空间中访问类。 namespace MyNamespace {class MyClass {public:void foo() {}}; }int main() {MyNamespace::MyClass obj; // 在命名空间中访问类obj.foo();return 0; }六、类的实例化 用类类型创建对象的过程称为类的实例化 实例化 换句话说类的实例化是通过创建对象来实现的。在C中对象是类的实例它具有类定义的属性和方法。通过使用构造函数我们可以在对象创建时初始化成员变量确保对象的正确初始化。 class Person { public:std::string name;Person(const std::string n) : name(n) {std::cout Person name created. std::endl;} };int main() {Person person1(Alice); // 实例化对象Person person2(Bob);return 0; }类比 制造汽车 类的实例化可以类比为现实生活中的模具制造物品的过程。 让我们以制造汽车为例来解释这个比方 在汽车制造过程中设计师首先会设计一个汽车的模型类比于编写一个类的定义。模型定义了汽车的特征、属性和功能就像类定义了成员变量和成员函数。 然后制造工厂会使用这个模型来制造实际的汽车。这个过程类似于在C中创建一个对象。每个实际的汽车都是根据同一个模型制造的但每辆汽车都是独立的个体拥有自己的状态和特性。 汽车模型中的规格和属性例如引擎类型、座位数量、颜色等对应于类的成员变量。而汽车模型中定义的功能例如启动引擎、加速、刹车等对应于类的成员函数。 在汽车制造过程中模型提供了标准和规范确保每辆汽车都遵循相同的设计。类的实例化也提供了一种标准方式来创建对象确保每个对象都有相同的结构和功能。 总的来说类的实例化就像在现实中使用模具制造物品模具定义了物品的外观和特征而每个制造出来的物品都是基于同一个模具创建的类似于对象都是基于同一个类实例化出来的。 七、类的对象大小的计算 一个类的大小实际就是该类中”成员变量”之和当然要注意内存对齐 注意空类的大小空类比较特殊编译器给了空类一个字节来唯一标识这个类的对象。 在C中类的对象大小是由其成员变量和继承关系所决定的。计算类的对象大小涉及到内存对齐和填充等概念。 内存对齐 计算机在存储数据时通常会按照一定的规则进行对齐以提高访问效率。 常见的对齐规则是以数据的字节大小为单位要求数据在内存中的地址是其字节大小的整数倍。 第一个成员在与结构体偏移量为0的地址处。其他成员变量要对齐到某个数字对齐数的整数倍的地址处。 注意对齐数 编译器默认的一个对齐数 与 该成员大小的较小值。 VS中默认的对齐数为8结构体总大小为最大对齐数所有变量类型最大者与默认对齐参数取最小的整数倍。如果嵌套了结构体的情况嵌套的结构体对齐到自己的最大对齐数的整数倍处结构体的整 体大小就是所有最大对齐数含嵌套结构体的对齐数的整数倍。 填充 为了满足对齐要求编译器可能会在成员之间插入额外的字节这些字节被称为填充。 计算类的对象大小的基本原则 以下是计算类的对象大小的基本原则 成员变量的大小 类的对象大小取决于其成员变量的大小之和加上可能的填充。成员变量的字节大小是根据数据类型决定的如int通常是4字节。 内存对齐 默认情况下编译器会以平台相关的字节对齐方式来对齐成员变量。例如如果平台要求变量以4字节对齐则如果一个int变量占4字节那么它的起始地址必须是4的倍数。 继承和多态 如果类涉及继承和多态那么类的对象大小还会受到虚函数表vtable的影响。每个具有虚函数的类都会有一个vtable这个vtable中存储了指向虚函数的指针从而支持多态性。vtable的大小和指针的大小有关。 举个例子考虑以下类的情况 class Base { public:int a; };class Derived : public Base { public:int b; };假设int类型占4字节平台要求以4字节对齐。那么Derived类的对象大小可能是8字节int a占4字节int b占4字节加上可能的填充。 需要注意的是不同的编译器和平台可能会对对象大小的计算产生不同的结果因此在写代码时应该避免过于依赖对象的大小而是专注于代码的可读性和可维护性。 你可以使用sizeof运算符在编译时获取对象的大小 size_t size sizeof(Derived);八、类成员函数的this指针 this指针用于指向当前对象的指针 1. this指针的作用 在C中每个非静态成员函数方法都有一个隐含的this指针指向调用该方法的对象。this指针允许在成员函数内部访问对象的成员变量和其他成员函数即使成员函数的参数与成员变量同名。 2. this指针的用法 this指针的使用方式非常简单。在成员函数中可以使用this指针来引用当前对象的成员。例如使用this指针来区分成员变量和参数名相同的情况 class MyClass { public:int x;void setValue(int x) {this-x x; // 使用this指针引用成员变量} };3. this指针的特性 this指针的类型类类型* const即成员函数中不能给this指针赋值。只能在“成员函数”的内部使用this指针本质上是“成员函数”的形参当对象调用成员函数时将对象地址作为实参传递给this形参。所以对象中不存储this指针。this指针是“成员函数”第一个隐含的指针形参一般情况由编译器通过ecx寄存器自动传递不需要用户传递 4. this指针的实际应用 a. 成员函数调用成员函数 在类的成员函数内部可以通过this指针调用其他成员函数从而实现代码的复用和逻辑封装。 class Calculator { public:int add(int a, int b) {return a b;}int addTwice(int a, int b) {return this-add(a, b) * 2; // 通过this调用add函数} };b. 实现链式调用 使用this指针可以在一个成员函数内返回*this从而实现链式调用。 class Chain { public:Chain setValue(int value) {this-value value;return *this; // 返回*this实现链式调用}int getValue() {return value;}private:int value; };5. 注意事项 this指针只能在成员函数内部使用且只有在非静态成员函数中才有效。静态成员函数没有this指针因为它们与具体的对象无关。在多线程编程中使用this指针时需要注意线程安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正定城乡建设局网站有没有专门做商铺招商的网站

如下表所示,接口信号能工作在8Gbps及以上速率,由于速率很高,PCB布线设计要求会更严格,在前几篇关于PCB布线内容的基础上,还需要根据本篇内容的要求来进行PCB布线设计。 高速信号布线时尽量少打孔换层,换层优…

做宠物店网站删除wordpress主题底部

更换jdk版本 只需要改下bin目录下的neo4j.bat, 把set "JAVA_HOMEXXXX"加入进去就行 windows SET "JAVA_HOMEc:\...." linux bin目录下 neo4j 在首行添加JAVA_HOME/usr/local/jdk文件夹即可 tomcat 指定jdk 找到bin下的setclasspath.bat文件;在…

娄底网站设计做网站优化

文章目录 前言 一、单链表是什么?二、单链表的实现总结 顺序表的缺点 1.中间/头部的插入删除,时间复杂度为O (N) 2.realloc 扩容(特别是异地扩,需要申请新空间,拷贝数据,释放旧空间)会有不小的…

如何在门户网站做推广方案网站速度提升

线程:数组形成的栈,方法的调用,出栈入栈 1、线程和进程的区别 资源占用:进程是拥有资源的基本单位,不同进程之间不可以共享资源。线程不占有资源,但一个进程内的所有线程可以共享进程内的资源。并发性&am…

两学一做网站无法做题展示型网站有哪些

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供一些关于Mysql 数据库查询优化的24条优化建议,仅供参考。Mysql 查询优化1、使用慢查询日志,找出执行慢的查询。2、使用 EXPLAIN 来决定查询功能是否合…

哈尔滨大型网站建设电话郑州发布

一、初识Docker 1. 为什么需要 Docker 大型项目组件较多,运行环境也较为复杂,部署时会遇到一些问题: 依赖关系复杂,容易出现兼容性的问题开发、测试、生产环境有差异 Docker 如何解决依赖的兼容问题 将应用的Libs(…

阜宁做网站价格dw网站建设视频下载

道可云元宇宙每日简报(2023年12月7日)讯,今日元宇宙新鲜事有: 青岛市元宇宙领域新产品推介暨产学研对接会举行 为加快推动青岛市元宇宙技术和产业创新,引领下一代互联网发展,青岛市元宇宙领域新产品推介暨…

手机网站如何建立珠海seo推广

目录 架构 环境部署 一、Ansible安装部署 1.yum安装Ansible 2.修改主机清单文件 3.配置密钥对验证 4.ansible-doc 5.看被控主机 二、常用模块 1.Command模块 2.Shell模块 3.Cron模块 1.添加 2.删除 4.User模块 5.Group模块 1.创建组 ​编辑 ​编辑 ​编辑…

高端品牌羽绒服有哪些seo培训机构哪家好

来源:宸元资本一MEMS基本概念和相关产业政策MEMS基本概念微机电系统(MEMS, Micro-Electro-Mechanical System),也叫做微电子机械系统、微系统、微机械等,指尺寸在几毫米乃至更小的高科技装置。微机电系统其内部结构一般…

某财政局网站建设方案当前最好用的wordpress主题

1 Iphone和Ipad同为IOS,设置方法相同。首先进入IOS系统的“设置”程序。 2 点击“通用”进入通用设置,点击“”; 3 选择"添加设置 "; 4 选择L2TP方式,填写必要信息:描述、服务器地址 、您注册充值的账号及密…

网站建设哪个平台好专业团队打造专业品质

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 AI生成技术威胁版权保护,水印技术和法律完善是关键 Sam Altman对…

宁波网站优化东莞建网站公司哪个好

整合JDBC 一、导入依赖二、配置Druid————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢谢~~ 接着 第10的 新注解: ConfigurationProperties ConfigurationPropert…

外流网站建设腾讯广告推广怎么做

自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进…

建设网站比较好国内个人网站设计

第七节 讲述了增加model中类的属性,由于数据库中已存在表,表中没有存在新加的列,所以可以删除数据库或者在数据库中新增一列,另可以在controller中新增一个数据库初始化的类,并在Global.asax添加初始化数据库的代码 …

网站搭建代码大全装修设计公司介绍

相信,一直关注着我们的同学们都知道,小思妹分享了好多好多的资料给大家。为了方便新来的同学自取,小思妹又重新整理了一遍,直接点以下标题即可跳转!这是我见过的最全的训练数据集,没有之一!送你…

网站建设昆明如何制作wordpress模板

文章目录 JS原生开发-文件上传-变量&对象&函数&事件JS导入库开发-登录验证-JQuery库&Ajax技术JS导入库开发-编码加密-逆向调试 JS原生开发-文件上传-变量&对象&函数&事件 1、布置前端页面 2、JS获取提交数据 3、JS对上传格式判断 <script>…

免费的代码分享网站做网站推广和网络推广

APIFox-自动获取登录状态操作 概述 作为纯后端开发码农&#xff0c;每次接口开发完的调试很重要&#xff0c;因此每次重复的手动获取登陆状态Token或者直接放行就太麻烦了。 APIFox提供了前置操作&#xff0c;可以很方便的自动获取登录状态&#xff0c;节省大量重复劳动时间。…

徐汇网站开发培训班上海网站备案审核

TCP UDP区别 共同点&#xff1a;都是属于传输层的协议 TCP&#xff1a;稳定。面向连接的&#xff0c;有可靠的数据传输服务。传输过程中数据无误&#xff0c;无丢失&#xff0c;无失序&#xff0c;无重复。传输效率低&#xff0c;耗费资源多。数据收发不同步&#xff0c;有沾…

新手容易上手的cms做企业网站金华专业网站建设公司

Expect 用法expect的安装实战——非交互式ssh连接案例1&#xff1a;普通操作案例2&#xff1a;设置变量与进行传参的方式案例3&#xff1a;进行批量推送公钥实现免密连接&#xff0c;ping通一个ip地址连接一个ip 实现批量修改密码&#xff0c;批量推送ssh的公钥&#xff0c;进行…