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

Gzip 网站 能够压缩图片吗/奶茶的营销推广软文

Gzip 网站 能够压缩图片吗,奶茶的营销推广软文,网站搭建是哪个岗位做的事儿,做网站需要交印花税面向对象的三大特性: 继承:允许一个类(子类 / 派生类)继承另一个类(父类 / 基类)的属性和方法,实现代码复用和层次化设计。 封装:将数据(成员变量)和操作数据…

面向对象的三大特性:

继承:允许一个类(子类 / 派生类)继承另一个类(父类 / 基类)的属性和方法,实现代码复用和层次化设计。
封装:将数据(成员变量)和操作数据的函数(成员函数)捆绑在一起,通过访问控制隐藏内部实现细节,仅对外提供必要接口。
多态:允许不同类的对象通过相同的接口进行调用,根据对象实际类型执行不同实现,增强代码灵活性和可扩展性。

访问修饰符:

public:成员可被任意类访问。
private:成员只能被本类的成员函数访问(默认修饰符)。
protected:成员可被本类和子类的成员函数访问。

多重继承

一个子类同时继承多个父类的特性。例如:

class A {};
class B {};
class C : public A, public B {}; // C继承自A和B

重载(Overload)和重写(Override)的区别:

重载:同一作用域内,函数名相同但参数列表不同(参数类型、个数或顺序),与返回值类型无关。编译时根据调用参数决定执行哪个版本。
重写:存在于继承关系中,子类重新定义父类的虚函数(函数签名完全相同)。运行时根据对象实际类型决定执行哪个版本(动态绑定)。

C++ 多态的实现:

通过虚函数(Virtual Function)和指针 / 引用实现。父类声明虚函数,子类重写该函数,当通过父类指针 / 引用调用虚函数时,实际执行的是对象所属子类的版本。例如:

class Shape {
public:virtual void draw() { cout << "Shape" << endl; }
};
class Circle : public Shape {
public:void draw() override { cout << "Circle" << endl; } // 重写虚函数
};
// 使用:
Shape* ptr = new Circle();
ptr->draw(); // 输出 "Circle"

成员函数 / 成员变量 / 静态成员函数 / 静态成员变量的区别:

成员变量:每个对象独享一份,存储对象的状态。
成员函数:绑定到对象,可访问对象的成员变量和其他成员函数。
静态成员变量:所有对象共享一份,存储类级别的数据,需在类外初始化。
静态成员函数:不绑定到对象,只能访问静态成员变量和其他静态成员函数,通过类名直接调用。

构造函数和析构函数:

构造函数:与类同名,无返回值,用于对象初始化,创建对象时自动调用。
析构函数:与类同名前加~,无返回值,用于资源释放(如内存、文件句柄等),对象销毁时自动调用。

构造函数的类型及作用:

默认构造函数:无参数或全默认参数,用于创建默认状态的对象。
参数化构造函数:带参数,用于自定义对象初始值。
拷贝构造函数:参数为同类对象的引用,用于创建新对象并复制已有对象的值(浅拷贝 / 深拷贝)。
移动构造函数:C++11 引入,参数为右值引用,用于高效转移资源所有权。

虚函数和虚函数表:

虚函数:在基类中用virtual声明的函数,允许子类重写,实现动态绑定。
虚函数表:每个包含虚函数的类都有一个虚函数表,存储该类的虚函数地址。每个对象包含一个指向虚函数表的指针(vptr),运行时通过 vptr 找到实际要调用的函数。

虚函数和纯虚函数的区别:

虚函数:基类中声明并实现,子类可选择性重写,基类可实例化。
纯虚函数:基类中声明但不实现(virtual void func() = 0;),子类必须重写,包含纯虚函数的类是抽象类,不可实例化。

抽象类和纯虚函数:

抽象类:包含至少一个纯虚函数的类,仅作为接口存在,不能实例化,必须通过子类实现纯虚函数后才能使用。
纯虚函数:定义接口规范,强制子类实现特定功能。

虚析构函数及其作用:

虚析构函数:基类的析构函数声明为virtual,确保通过基类指针删除派生类对象时,先调用子类析构函数,再调用基类析构函数,防止内存泄漏。
示例:

class Base {
public:virtual ~Base() { cout << "Base destructor" << endl; }
};
class Derived : public Base {
public:~Derived() override { cout << "Derived destructor" << endl; }
};
// 使用:
Base* ptr = new Derived();
delete ptr; // 输出 "Derived destructor" -> "Base destructor"

为什么要虚析构,不能虚构造:

虚析构:防止通过基类指针删除派生类对象时,只调用基类析构函数导致子类资源泄漏。
不能虚构造:构造函数用于创建对象并初始化 vptr,此时对象尚未完全构造,无法实现动态绑定。

不能声明为虚函数的函数:

构造函数
静态成员函数(不依赖对象)
内联函数(编译时展开,不支持动态绑定)
友元函数(非类成员)

深拷贝和浅拷贝的区别:

浅拷贝:复制对象时仅复制成员变量的值,若包含指针,则只复制指针地址,导致多个对象共享同一块内存,可能引发内存泄漏或悬空指针。
深拷贝:复制对象时不仅复制值,还为指针成员分配新内存并复制内容,每个对象拥有独立资源,避免内存问题。

运算符重载:

允许自定义类对内置运算符(如+, -, =, []等)的行为。
形式:返回类型 operator运算符(参数列表)
示例:重载+运算符实现复数加法:

class Complex {
private:double real, imag;
public:Complex operator+(const Complex& other) const {return Complex(real + other.real, imag + other.imag);}
};

先完成再完美,先记住这些,实践起来就会记住了!!!

http://www.whsansanxincailiao.cn/news/30284490.html

相关文章:

  • 杭州富阳网站建设/网站友情链接是什么
  • 网站建设与规划试卷/百度搜索次数统计
  • 在网站添加邮箱/谷歌seo排名优化服务
  • java网站开发 csdn/百度指数查询官网入口登录
  • 昆山哪里有做网站的/今日重大新闻头条财经
  • 局域网怎么建立/谷歌推广seo
  • 重庆黄埔建设集团网站/百度seo排名优化是什么
  • 吾爱网站/夸克搜索引擎
  • 做外贸都用什么网站/百度查看订单
  • 提供电子商务网站建设外包服务的企业/网页搜索关键词
  • 如何做动态网站/湖南靠谱seo优化
  • 教育网络系统管理/博客程序seo
  • 网站建设服务描述/网站排名seo教程
  • 真人做的免费视频网站/做网页用什么软件好
  • 做新闻网站有什么意义/搜狗网址
  • 一品威客网是怎么骗钱的/河北百度seo软件
  • 承德建设工程信息网站/成都网络营销搜索推广
  • 网站头部导航代码/免费做网站怎么做网站链接
  • 帮人做钓鱼网站以及维护/主要推广手段免费
  • 辽阳建网站/汕头seo优化公司
  • 情头定制网站/重庆seo技术教程
  • 校园网站模板/怎么注册一个自己的网址
  • 南通公司网站制作/网页设计html代码大全
  • 网页建站价格/拼多多关键词排名查询软件
  • 2012服务器做网站/在线看crm系统
  • 建设银行日照分行官方网站/百度人工优化
  • asp.net怎么做网站/网络流量分析工具
  • 设计公司网站案例/企业管理
  • 老客户网站建设/打开百度网页
  • 网站商城怎么做app/职业培训机构管理系统