当前位置: 首页> 财经> 金融 > 淘宝购物_最专业企业营销型网站建设_2345网址导航官网下载_河南百度seo

淘宝购物_最专业企业营销型网站建设_2345网址导航官网下载_河南百度seo

时间:2025/7/10 7:42:36来源:https://blog.csdn.net/qq_43287763/article/details/143042557 浏览次数:0次
淘宝购物_最专业企业营销型网站建设_2345网址导航官网下载_河南百度seo

        友元类(friend class)和继承(inheritance)是C++中两种不同的机制,用于实现类之间的关系和访问控制。它们有不同的用途和特点。

友元类(friend class)

        友元类是指一个类可以访问另一个类的私有和受保护成员。通过声明友元类,可以使指定的类具有访问权限,而不需要公开这些成员。

特点:

  1. 访问控制:友元类可以访问另一个类的私有和受保护成员,这打破了封装,但在某些情况下是有用的,比如实现复杂的数据结构或算法时,两个类需要紧密合作。
  2. 非继承关系:友元类之间没有继承关系,它们只是通过友元声明获得访问权限。
  3. 单向关系:友元关系是单向的,即A是B的友元,不意味着B是A的友元。

示例:

class A {
private:int secret;public:A() : secret(42) {}// 声明B为友元类friend class B;
};class B {
public:void showSecret(A &a) {// 访问A的私有成员std::cout << "A's secret is: " << a.secret << std::endl;}
};int main() {A a;B b;b.showSecret(a);return 0;
}

继承(inheritance)

        继承是面向对象编程的一个基本特性,用于定义类之间的层次结构,使一个类(子类)能够获得另一个类(父类)的属性和方法。继承实现了代码复用和多态性。

特点:

  1. 代码复用:子类继承父类的所有公共和受保护成员,减少代码重复。
  2. 多态性:通过继承可以实现多态性,使用基类指针或引用来操作派生类对象。
  3. 层次关系:表示“is-a”关系,即子类是父类的一种特殊形式。

示例:

class Base {
protected:int value;public:Base(int v) : value(v) {}void showValue() const {std::cout << "Value: " << value << std::endl;}
};class Derived : public Base {
public:Derived(int v) : Base(v) {}void increment() {value++;}
};int main() {Derived d(10);d.showValue(); // 从基类继承的方法d.increment();d.showValue();return 0;
}

主要区别

关系类型:

  • 友元类:是基于访问控制的关系,允许访问私有和受保护成员。
  • 继承:是基于层次结构的关系,表示“is-a”关系,子类继承父类的属性和方法。

访问权限:

  • 友元类:可以访问另一个类的所有成员(包括私有和受保护)。
  • 继承:只能访问父类的公共和受保护成员。

代码复用:

  • 友元类:不提供代码复用,只提供访问权限。
  • 继承:提供代码复用,子类继承父类的成员。

多态性:

  • 友元类:不支持多态性。
  • 继承:支持多态性,通过虚函数和基类指针或引用实现。
关键字:淘宝购物_最专业企业营销型网站建设_2345网址导航官网下载_河南百度seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: