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

中职省级示范校建设网站手机网站优势

中职省级示范校建设网站,手机网站优势,阳泉住房和城乡建设部网站,网站登记备案表目录 virtual#xff1a; 易错点#xff1a; 未声明虚函数#xff1a; 忘记使用 override 关键字#xff1a; 内存泄漏#xff1a; 基类指针不指向任何对象#xff1a; 访问权限问题#xff1a; 不正确的类设计#xff1a; 不正确的对象切片#xff1a; 混淆…目录 virtual 易错点 未声明虚函数 忘记使用 override 关键字 内存泄漏 基类指针不指向任何对象 访问权限问题 不正确的类设计 不正确的对象切片 混淆 virtual 和 static 成员函数 多重继承的二义性 override 继承Inheritance 多态Polymorphism virtual 关键字 override 关键字 virtual C中继承和多态通常与虚函数virtual一起使用以实现运行时多态性。以下是有关继承、多态和虚函数的更详细说明 继承 继承是一种机制允许你创建一个新的类派生类/子类该类可以继承另一个类基类/父类的属性和方法。派生类可以访问基类的公有和受保护成员但不能访问基类的私有成员。 多态 多态是一种特性允许不同对象对相同的消息函数调用做出不同的响应。多态可以通过函数重载和虚函数来实现。 虚函数 虚函数是在基类中声明的函数可以在派生类中被重写。声明一个函数为虚函数需要在函数声明前加上 virtual 关键字例如virtual void someFunction();。当通过基类指针或引用调用虚函数时实际执行的是派生类中的版本而不是基类中的版本。这个过程被称为动态绑定它实现了多态性。 示例 class Base { public:virtual void print() {std::cout Base class std::endl;} };class Derived : public Base { public:void print() override {std::cout Derived class std::endl;} };int main() {Base* ptr new Derived();ptr-print(); // 调用 Derived 类中的 print() 函数delete ptr;return 0; }在上面的示例中Base 类中的 print 函数被声明为虚函数而 Derived 类中重写了这个虚函数。当通过指向 Derived 对象的 Base 指针调用 print 函数时会调用 Derived 类中的版本实现了多态性。这是因为虚函数的调用在运行时动态绑定到正确的函数版本。 易错点 当使用C中的继承、多态和虚函数时以下是每个点的更详细解释以及如何避免相关错误 未声明虚函数 错误说明如果在基类中未将成员函数声明为虚函数那么派生类中对该函数的重写将不会触发动态绑定这可能导致多态性无法正常工作。解决方法确保在基类中需要多态性的成员函数前使用 virtual 关键字进行声明。例如 class Base { public:virtual void myFunction() {// ...} };忘记使用 override 关键字 错误说明在派生类中重写虚函数时使用 override 关键字可以帮助编译器检查是否正确地重写了基类函数。如果忘记使用它编译器无法提供此种检查。解决方法在派生类中重写虚函数时使用 override 关键字这样编译器可以检查错误 class Derived : public Base { public:void myFunction() override {// ...} };内存泄漏 错误说明内存泄漏是未释放动态分配的内存的情况。特别是在使用指向派生类对象的基类指针时容易忘记释放内存。解决方法使用 delete 来手动释放内存是一种方法但更好的做法是使用智能指针如 std::shared_ptr 或 std::unique_ptr来管理内存。这些智能指针会自动处理内存释放减少内存泄漏的风险。 基类指针不指向任何对象 错误说明如果将基类指针设置为未初始化或空指针然后尝试调用虚函数会导致未定义行为。解决方法始终确保基类指针指向有效的派生类对象或者在调用虚函数之前检查指针是否为 nullptr。避免未初始化的指针 Base* ptr nullptr; // 初始化为 nullptr // ... if (ptr ! nullptr) {ptr-myFunction(); // 在调用前检查指针是否为 nullptr }访问权限问题 错误说明派生类尝试访问基类的私有成员这是不允许的因为私有成员只能在基类内部访问。解决方法确保派生类只访问基类中的公有或受保护成员或者使用友元关系来解决权限问题。 不正确的类设计 错误说明不良的类设计可能导致难以维护和理解的代码或者使多态性无法正确工作。解决方法在设计类层次结构时仔细考虑每个类的责任和关系确保清晰的抽象和继承关系。使用合理的类层次结构来避免混乱和不必要的复杂性。 不正确的对象切片 错误说明将派生类对象赋值给基类对象会导致对象切片丢失派生类的信息。这可能导致意外行为和数据丢失。解决方法在处理派生类对象时始终使用基类指针或引用以避免对象切片。不要试图将派生类对象隐式转换为基类对象。 Base baseObj derivedObj; // 对象切片避免这种情况混淆 virtual 和 static 成员函数 错误说明混淆虚函数和静态成员函数是一种常见的错误。静态成员函数与类关联而虚函数与对象关联。解决方法理解 virtual 成员函数是动态绑定的而 static 成员函数是与类关联而不是与对象关联的。确保在适当的情况下使用每种类型的函数。 多重继承的二义性 错误说明在多重继承中如果两个基类具有相同名称的成员可能会导致二义性编译器无法确定应该使用哪个成员。解决方法使用作用域解析运算符::来明确指定要使用的基类成员或者使用虚继承来解决二义性问题。虚继承用于在多重继承中解决菱形继承问题以避免二义性。 override 在C中继承、多态和 override 关键字是面向对象编程中的重要概念它们一起用于创建和使用基类和派生类之间的关系。以下是有关这些概念的详细解释 继承Inheritance 继承是一种面向对象编程的机制允许一个类子类/派生类从另一个类父类/基类继承属性和方法。子类可以继承父类的成员变量和成员函数以及它们的访问权限。 class Base { public:int baseVar;void baseFunction() {// ...} };class Derived : public Base { public:// Derived 继承了 baseVar 和 baseFunction// 可以访问它们并添加新的成员void derivedFunction() {// ...} };多态Polymorphism 多态是一种特性允许不同对象对相同的消息函数调用做出不同的响应。多态可以通过虚函数和函数重载来实现。 class Shape { public:virtual void draw() {// 基类虚函数} };class Circle : public Shape { public:void draw() override {// 派生类重写了基类虚函数} };void drawShape(Shape* shape) {shape-draw(); // 调用虚函数根据对象类型执行正确的函数 }virtual 关键字 virtual 是用于声明虚函数的关键字。虚函数是在基类中声明的函数可以在派生类中被重写。当通过基类指针或引用调用虚函数时实际执行的是派生类中的版本这实现了运行时多态性。、 class Base { public:virtual void myFunction() {// 基类虚函数} };override 关键字 override 是 C11 引入的关键字用于明确指示一个函数是派生类中对基类虚函数的重写。使用 override 可以帮助编译器检查是否正确地重写了基类的虚函数防止错误。 class Derived : public Base { public:void myFunction() override {// 派生类重写了基类虚函数} };
http://wiki.neutronadmin.com/news/349177/

相关文章:

  • 大型网站技术架构演进与性能优化求一外国h网站
  • 流行的网站设计风格成都锦江建设局网站
  • 工商局网站官网页面设计公司会招低学历的人吗
  • 秦皇岛网站开发价格做车展的网站
  • 分销怎么做网站开发分销丝绸之路网站建设策划书
  • 在哪公司建设网站新手运营从哪开始学
  • 做视频网站审核编辑有假么个人如何做购物网站 关于支付接口
  • 像饿了码的网站建站有吗wordpress主题 榆次
  • 网站挣钱网深圳百度快照优化
  • 河南网站优化排名内网门户网站建设
  • 小型门户网站建设硬件配置手机网价格直降
  • 彩妆网站建设策划书住房与建设部网站首页
  • 公司信息化网站建设实施方案吉林省建设银行网站
  • 网站建设的几个阶段广州手机网站定制咨询
  • 网站企业优化手机app下载官方
  • 厦门网站建设网站制作吴川网站开发公司
  • 网站建设公司市场策划方案优化公司管理
  • 上海网站建设优化公司网站建设插导航条
  • 电影视频网站怎么做社区网站推广方案
  • 庆阳网站建设公司商标logo一键生成器
  • 领券购买网站是怎么做的门户网站开发需求
  • 网站建设经费申请报告wordpress外观
  • 重庆品牌网站建设公司排名网站建设拟采用的技术路线
  • 图片外链上传网站两个人看的视频在线观看
  • 宁波网站推广营销公司做引流去那些网站好
  • 网站推广的重要性资源搜索神器
  • 个人网站建站指南代理充值平台网站
  • 邹城建设银行网站网站建设与管理好处
  • 怎么做网站优化排名到前面百度问答app下载
  • 网站增加栏目费用太原市外贸网站建设