当前位置: 首页 > news >正文

织梦教程网采集站seo课程

织梦教程网,采集站seo课程,武汉网站建设维护,什么是网站静态化文章目录 函数指针C中类成员的访问权限和继承权限问题定义和声明的区别C中类的静态成员与普通成员的区别是什么?虚函数为什么不能重载为内联函数?对ifdef endif的理解如何在不使用额外空间的情况下,交换两个数? 函数指针 什么是函…

文章目录

  • 函数指针
  • C++中类成员的访问权限和继承权限问题
  • 定义和声明的区别
  • C++中类的静态成员与普通成员的区别是什么?
  • 虚函数为什么不能重载为内联函数?
  • 对ifdef endif的理解
  • 如何在不使用额外空间的情况下,交换两个数?

函数指针

  • 什么是函数指针

    函数指针是指向函数的指针变量,它存储了函数的地址,允许我们通过指针调用该函数。

  • 定义方式

  // 语法:返回值类型 (*指针变量名)(参数列表)int (*funcPtr)(int, int);// 定义一个函数指针变量 funcPtr,它指向返回值为 int,参数为 int 和 int 的函数
  • 函数指针的赋值
  // 将函数的地址赋值给函数指针变量funcPtr = functionName; // functionName 是一个函数名
  • 调用函数指针指向的函数
  // 使用函数指针调用函数,可以像调用普通函数一样使用函数指针int result = funcPtr(10, 20);
  • 一个函数名就是一个指针,它指向函数的代码

    一个函数地址是该函数的进入点,也就是调用函数的地址。函数的调用可以通过函数名,也可以通过指向函数的指针来调用。函数指针还允许将函数作为变元传递给其他函数;

  • 两种方法赋值:

    指针名 = 函数名; 指针名 = &函数名

C++中类成员的访问权限和继承权限问题

  • 访问权限

    • public:公有成员可以在类的内部和外部被访问。在类的外部可以通过对象或指针访问,也可以在类的内部直接访问

    • protected:保护成员可以在类的内部被访问,但不能在类的外部通过对象或指针直接访问。保护成员通常用于在派生类中继承和访问,在派生类中,protected相当于公有成员,在派生类中可以被访问

    • private:私有成员只能在类的内部访问。不能在类的外部通过对象或指针访问。私有成员通常用于封装类的内部实现细节

  • 继承权限

    • public继承:类成员在派生类中的访问权限保持不变,也就是说,基类中的成员访问权限,在派生类中仍然保持原来的访问权限
    • protected继承:基类的公有成员和保护成员在派生类中的访问权限都会变为保护(protected)权限,私有成员在派生类中的访问权限仍然是私有(private)权限
    • private继承:基类的公有成员和保护成员在派生类中都具有私有访问权限,私有成员在派生类中不可访问

定义和声明的区别

  • 声明

    声明是指在程序中告诉编译器某个标识符(如变量、函数、类等)的存在和类型,但并不分配内存或实现具体的功能。声明告诉编译器该标识符将在程序的其他地方进行定义或实现

    • 对于变量:声明仅仅告诉编译器变量的名称和类型
    • 对于函数:声明告诉编译器函数的名称、参数列表和返回类型,但并不包含函数的具体实现
    • 对于类:类的声明通常包括类的名称和成员函数的原型,但并不包括成员函数的实现和数据成员
  • 定义

    定义是指在程序中为标识符(如变量、函数、类等)分配内存空间并实现具体的功能。定义将标识符与其内存地址绑定,并分配适当的资源来实现其功能。

    • 对于变量:为变量分配内存空间,并可以同时初始化变量的值
    • 对于函数:为函数提供实际的函数体,实现函数的功能
    • 对于类:包括类的数据成员和成员函数的实现
  • 声明是对标识符的类型和存在进行声明,而定义是为标识符分配内存并实现具体的功能。

C++中类的静态成员与普通成员的区别是什么?

  • 静态成员变量

    静态成员属于类本身,而不是类的特定实例(对象)

    它在所有类的实例之间共享,意味着所有类的对象共用相同的静态成员

    静态成员使用关键字static声明,并在类声明外部进行定义

    静态成员只在程序启动时被初始化一次,并在程序结束时销毁

    可以使用类名来访问静态成员,无需创建类的对象

    静态成员变量存储在静态全局区

  • 普通成员

    普通成员与类的每个实例(对象)相关联。每个对象都有自己的普通成员副本

    普通成员在类声明内部进行声明和定义

    每次创建对象时都会初始化普通成员,对象销毁时普通成员也会被销毁

    可以通过类的对象来访问普通成员

    普通成员变量存储在栈或堆中

  • 用途

    静态成员通常用于那些在所有类实例之间共享的变量,如类级别的常量、计数器或共享资源等

    普通成员用于类的每个对象具有不同值的变量和函数

总结:静态成员在所有类对象之间共享,具有类范围,而普通成员与每个对象相关联,具有对象范围。

虚函数为什么不能重载为内联函数?

  • 虚函数不能声明为内联函数,因为虚函数需要在运行时进行动态绑定,而内联函数的展开是在编译时进行的,两者的机制不兼容。如果虚函数被声明为内联函数,编译器会忽略虚函数的动态绑定机制,可能导致错误的结果。在使用虚函数时,应该根据需要选择是否声明为内联函数,通常情况下,编译器会根据函数的复杂度和频繁调用情况自动进行内联展开。

对ifdef endif的理解

  • 一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。

  • 条件编译命令最常见的形式为:

  #ifdef 标识符  程序段1  #else  程序段2  #endif
  • 作用:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。其中#else部分也可以没有,即:
  #ifdef 标识符 程序段1  #endif
  • 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件上时,就会出现大量“重定义”错误。所以在头文件中使用#ifdef和#ifndef是非常重要的,可以防止重定义的错误。

  • 标识符在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h

  #ifndef _STDIO_H_ #define _STDIO_H_......#endif 

如何在不使用额外空间的情况下,交换两个数?

  • 算术运算
  x = x + yy = x - yx = x - y
  • 异或
  x = x ^ yy = x ^ yx = x ^ y
http://www.dt0577.cn/news/5233.html

相关文章:

  • 网站建设工作 方案选择一个产品做营销方案
  • 齐鲁人才网招聘网北京百度seo排名公司
  • 如何做网站赚临沂百度代理公司有几个
  • 公司网站需要程序员做吗百度怎么发自己的小广告
  • 网站集约化建设 技术百度输入法免费下载
  • 重庆网站建设圣矢最近最新新闻
  • c语言做的网站有什么优缺点新型实体企业100强
  • 微信优惠券网站怎么做淘宝搜索关键词排名
  • 网站建设图片如何优化平台运营
  • 西安企业网站设计公司游戏推广接单平台
  • jsp做就业网站榆林百度seo
  • 做cpa的博客网站类型站长工具下载app
  • 栖霞网站设计株洲seo优化公司
  • 12306网站做的好丑五年级上册语文优化设计答案
  • 上市设计网站北京网络推广有哪些公司
  • 贵阳建筑公司网站建设推广下载
  • 网站备案作用教育培训机构
  • 有网站的源代码怎么生成网站如何去推广自己的产品
  • 北京互联网公司开发的网站免费推广链接
  • 免费做图网站广州网站运营专注乐云seo
  • 网站怎么更换服务器微网站建站平台
  • 自建网站如何备案百度推广登录平台app
  • 做网站的顶部图片个人网站建设
  • 福州网站建设策划方案爱站seo工具
  • 手机对比网站爆款采集推广引流软件
  • 童装网站建设网站seo快速排名优化的软件
  • 新手网站设计看哪本书seo搜索是什么意思
  • 做卖车的网站有哪些seo搜索引擎是什么意思
  • 医院网站怎么做百度搜索关键词排名优化推广
  • 普陀学校网站建设云计算培训费用多少钱