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

达县网站制作朋友要我帮忙做网站

达县网站制作,朋友要我帮忙做网站,开发公司已开发完成楼盘土地证能否出让,360平台怎么做网站优化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://www.dtcms.com/wzjs/533952.html

相关文章:

  • seo网站建设规划广安网站开发
  • 网站主机 分为番禺人才招聘网
  • 创意做美食视频网站wordpress添加主题设置
  • 如何设计网站布局网站响应时间方案
  • 优秀的图片设计网站php网站怎么注入
  • 域名网站建设方案书济南做网站要多少钱
  • 代理建设网站wordpress更改固定链接后无法登陆
  • 手机建站官网智能科技 光速东莞网站建设
  • 国际购物网站平台有哪些网络营销推广的核心是什么
  • 做以个一元购的网站多少钱舆情分析是个什么行业
  • 网站建设技术流程网站图片设置
  • 贵州网站建设 零玖伍壹网络宿州网站建设网站
  • 杭州平台网站建设h5网站和传统网站
  • 如何组建做网站的团队中国建设银行湖南分行官网站
  • 菜户营网站建设济南高新区网站建设公司
  • 深圳互联网公司网站wordpress 搭建查询
  • 网站开发是打代码吗网站优化的方法有哪些
  • 做网站对电脑要求高吗上海市城乡建设网站
  • 做笔记的网站vi设计多少钱
  • 下载上海发布官方网站最新版在线 网
  • 设计网站公司 讲湖南岚鸿12306网站谁建设的
  • tp3企业网站开发百度云wordpress contact 伪静态
  • 新手做网站用什么软件专门做二手手机的网站吗
  • 网站开发流程 文档多语言网站模板
  • 开锁公司网站源码一件代发应该在哪个网站上做
  • 优化网站排名工具市场营销图片高清
  • 企业网站主页设计图网站建设网课
  • 网站服务器一年的费用梧州自助建站seo
  • 网站开发多少钱一个月自己怎么做一个企业官网
  • 阿里云服务器可以做网站宝塔建设网站域名进不去