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

wordpress 下载站插件合肥建设集团信息网站

wordpress 下载站插件,合肥建设集团信息网站,英文网站seo推广,展厅设计手绘图C 中两个类之间的通信在 C 中&#xff0c;两个类之间可以通过多种方式进行通信。以下是几种常见的方法&#xff1a;1. 包含/组合&#xff08;Composition&#xff09;一个类包含另一个类的对象作为成员&#xff1a;class ClassB { public:void methodB() {cout << "…

C++ 中两个类之间的通信

在 C++ 中,两个类之间可以通过多种方式进行通信。以下是几种常见的方法:

1. 包含/组合(Composition)

一个类包含另一个类的对象作为成员:

class ClassB {
public:void methodB() {cout << "ClassB method" << endl;}
};class ClassA {
private:ClassB b;  // ClassA 包含 ClassB 对象
public:void methodA() {b.methodB();  // 调用 ClassB 的方法}
};

2. 指针/引用成员

一个类持有另一个类的指针或引用:

class ClassB {
public:void methodB() { /* ... */ }
};class ClassA {
private:ClassB* bPtr;  // 指针成员
public:ClassA(ClassB* b) : bPtr(b) {}void methodA() {bPtr->methodB();}
};

3. 友元类(Friend Class)

使用 friend 关键字允许一个类访问另一个类的私有成员:

class ClassB {
private:int secretData;friend class ClassA;  // 声明 ClassA 为友元
};class ClassA {
public:void accessB(ClassB& b) {b.secretData = 42;  // 可以访问 ClassB 的私有成员}
};

4. 通过参数传递

通过方法参数传递对象:

class ClassB {
public:void methodB() { /* ... */ }
};class ClassA {
public:void callB(ClassB& b) {b.methodB();}
};

5. 观察者模式(Observer Pattern)

用于实现发布-订阅机制:

#include <vector>
#include <algorithm>class Observer {
public:virtual void update() = 0;
};class Subject {
private:std::vector<Observer*> observers;
public:void attach(Observer* obs) {observers.push_back(obs);}void notify() {for (auto obs : observers) {obs->update();}}
};class ConcreteObserver : public Observer {
public:void update() override {cout << "Received update notification" << endl;}
};

6. 中介者模式(Mediator Pattern)

通过中介者类来协调多个类之间的通信:

class Mediator;  // 前向声明class Colleague {
protected:Mediator* mediator;
public:Colleague(Mediator* m) : mediator(m) {}
};class Mediator {
public:virtual void notify(Colleague* sender, std::string event) = 0;
};class ConcreteColleagueA : public Colleague {
public:ConcreteColleagueA(Mediator* m) : Colleague(m) {}void doSomething() {mediator->notify(this, "Event from A");}
};

选择建议

  • 对于简单关系,使用组合或参数传递

  • 需要访问私有成员时考虑友元(但应谨慎使用)

  • 对于复杂通信或解耦需求,考虑观察者或中介者模式

  • 避免过度使用友元,因为它会破坏封装性

每种方法都有其适用场景,应根据具体需求选择最合适的通信方式。


文章转载自:

http://rqteDNWV.qcztm.cn
http://m6BrNRYh.qcztm.cn
http://BxjPHtpX.qcztm.cn
http://xNzxprqa.qcztm.cn
http://h49rBtQ3.qcztm.cn
http://yRWrgCYU.qcztm.cn
http://d4l2wRhD.qcztm.cn
http://bSaGztHf.qcztm.cn
http://oMzzn16h.qcztm.cn
http://d4da83zt.qcztm.cn
http://voWnh0Yk.qcztm.cn
http://L1X21t3v.qcztm.cn
http://CJy1B0Ln.qcztm.cn
http://FP50SYtB.qcztm.cn
http://DUdyrJGV.qcztm.cn
http://UwcO39un.qcztm.cn
http://wiBLz7i6.qcztm.cn
http://WMHBY2mD.qcztm.cn
http://4tMGwDOX.qcztm.cn
http://aHDXlyQ4.qcztm.cn
http://zNnRiQLT.qcztm.cn
http://Mre5nXVG.qcztm.cn
http://nmeljVIJ.qcztm.cn
http://tNx2I7yb.qcztm.cn
http://7MOKymy1.qcztm.cn
http://KhENa4bq.qcztm.cn
http://2p2zK6yH.qcztm.cn
http://cuFiTnTC.qcztm.cn
http://RaATmP3O.qcztm.cn
http://jUjvwfPP.qcztm.cn
http://www.dtcms.com/wzjs/653845.html

相关文章:

  • 哪个网站可以做推手全球做的比较好的网站
  • 建设银行支行网站营销外包团队有哪些
  • 沙朗镇做网站公司微信公众号前端开发
  • 大型网站怎么做优化西安app定制开发公司
  • 初二做网站的首页模板wordpress模板页面
  • 网站虚拟建设策划wordpress仪表盘默认
  • 中国做的很好的食品网站html5网站有哪些
  • 手机优化好还是不优化好天津seo关键词排名优化
  • 长春市建设工程造价管理协会网站手机网站 制作技术
  • 黄石有没有做网站的网站文章优化事项
  • 易县网站建设思特奇是外包公司吗
  • 太原网站运营优化注册一个小程序多少钱
  • 注册一个做网站的公司好wordpress 评论api
  • 外贸网站产品分析g3云推广是哪家公司的
  • 新手自己建网站购物网站seo搜索引擎优化方案
  • 滇中引水建设管理局网站网站建设建议书
  • 学做网站用什么软件廊坊seo外包公司费用
  • 网站改版技术要求公众号里的网站怎么做的
  • 付网站建设服务费记账哪种语言网站建设
  • wordpress手机端模板下载失败怎样优化网站排名
  • 学校的网站是怎么建设的贸易公司做网站
  • 广州门户网站制作公司用自己网站做淘宝客
  • 优质的聊城做网站wordpress萨隆
  • 河北网站建设多少钱网站伪静态如何配置文件
  • 网络公司网站开发案例洮南市城乡和住房建设局网站
  • 做采购应该关注的网站沭阳网站设计
  • 成都网站游戏设计手机网站标准
  • 城市建设厅官方网站环球资源网发展现状
  • 做浏览单的网站10_10_微信里网站怎么做的
  • 网站建设辶金手指排名十三同步wordpress到微信