`
sinye
  • 浏览: 219215 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c++类之间相互引用

阅读更多

在使用c++时,有两个类  class A、class B。在class A中有一个class B的成员变量,同样,在class B中有一个class A的成员变量,这时候,就需要用到c++的向前申明来解决类的相互引用。解决的准则如下:

A或者B任选一个采用头文件(A.h)引用另一头文件(B.h)的方式不变,而另外一方的头文件(B.h)中则在定义该类之前写一句class A;然后在B的cpp文件中引用A的头文件。

 

A.h

//保留A.h不变,使用#include的方式引入B
#include "B.h" 
class A 
{ 
  B* b; 
} 

 B.h

//在申明B之前,向前申明A
class A; 
class B 
{ 
  A *a; 
} 

 同时

B.cpp

//在B.cpp中要#include A,否则不能调用成员A的任何内容 
#include "A.h" 
B::sayHello{
    
}

 

 

 

1
1
分享到:
评论

相关推荐

    c++ 类的互相调用的方法

    在C++编程中,类的互相调用是一个常见的设计模式,用于实现复杂的系统结构和对象间的协作。这种机制使得代码更加模块化,提高了代码的复用性和可维护性。但正如描述中提到的,正确使用类的互相调用至关重要,避免...

    C++ 包含类两个类互相调用彼此的类成员变量和方法

    在C++编程中,类之间的相互调用是一个常见的设计模式,尤其在实现复杂系统或对象间的协作时。这种设计允许类A访问类B的成员,同时类B也可以访问类A的成员,形成一种循环依赖的关系。然而,这种关系需要谨慎处理,以...

    C++类与对象的修改

    《C++类与对象的修改》 C++是一种支持面向对象程序设计(OOP)的高级编程语言。在C++中,类(Class)和对象(Object)是OOP的核心概念,它们允许开发者以更加符合现实世界的方式组织和管理代码。 8.1 面向对象程序...

    C++和C#相互调用

    本文将深入探讨如何在C#和C++之间进行互相调用,以及涉及的相关技术与实践。 标题所提及的"C++和C#相互调用"是指在C#应用程序中调用C++编写的代码,反之亦然。这种技术在需要利用C++的高性能计算能力或利用C#的.NET...

    C++和C#相互调用COM组件

    本文通过具体的示例,介绍如何在C++与C#之间通过COM组件进行相互调用。 #### 示例一:在VS2005中,C#编写DLL并使用C++调用 **1.1 C#编写DLL程序** **步骤**: - 在Visual Studio 2005中新建一个类库项目,命名为`...

    C++的头文件互相包含的问题

    如果可能,重新设计类结构,减少相互之间的依赖,使代码更加模块化和易于维护。 #### 总结 头文件的正确管理和使用对于保持C++项目的可读性和可维护性至关重要。遇到头文件互相包含的问题时,应优先考虑前向声明和...

    C++类各种类型转换_数据类型的相互转换_

    在C++编程中,数据类型的相互转换是一种常见的操作,它涉及到不同数据类型的变量之间值的迁移。本篇文章将深入探讨C++中不同类型的转换方法,包括隐式转换和显式转换,以及它们在实际编程中的应用。 首先,我们讨论...

    C++和C#互相调用Demo程序

    本示例——"C++和C#互相调用Demo程序",旨在演示如何利用微软的公共语言运行库(Common Language Runtime,CLR)实现C++与C#之间的互调用。这一技术允许开发人员在.NET框架下使用多种语言,同时享受它们各自的优势。...

    c++ 加密, java解密 互通,下载直接引用

    在IT行业中,跨语言通信和数据安全是两个重要的议题,特别是在C++和Java这两个广泛应用的编程语言之间。本文将深入探讨如何实现C++中的加密与Java中的解密过程,以达到数据的互通,并确保信息安全。 首先,让我们...

    qt中c++和qml互相调用的过程

    2. **在QML中实例化C++对象**: 一旦类型注册成功,你可以在QML中直接实例化C++类,就像使用任何其他QML类型一样。 3. **暴露C++方法到QML**: 为了能在QML中调用C++方法,需要将这些方法声明为`Q_INVOKABLE`。例如:...

    C/C++ 类关系

    双向关联表示两个类的对象相互引用对方,可以通过对方访问其公共属性和方法。例如,老师和学生之间的关系,老师知道学生,学生也知道老师。在实际的C++代码中,双向关联通过在两个类中都声明对方类型的指针、引用或...

    03 C#与C++dll互相传递字符串.rar

    首先,C#和C++之间的互操作性是通过.NET Framework的Platform Invoke (P/Invoke)服务实现的。P/Invoke允许.NET应用程序调用非托管代码,如C++的函数。 1. **C++ DLL的创建**: 在C++中,我们需要定义一个导出函数...

    通过CLR连接C#和C++的简单模型

    标题中的“通过CLR连接C#和C++的简单模型”指的是使用.NET框架的公共语言运行时(Common Language Runtime,简称CLR)来实现C#和C++之间的互操作性。CLR是微软开发的一种运行环境,它允许不同编程语言编写的代码在...

    C#和c++dll函数相互调用

    本篇将详细探讨如何在Unity3D环境中实现C#与C++DLL之间的函数相互调用。 首先,我们需要了解DLL(动态链接库)的概念。DLL是一种可执行文件,它包含可以由多个程序同时使用的函数和资源。在C#中,我们可以通过.NET ...

    C#与C++之间DLL文件的创建与调用DEMO演示

    本主题聚焦于如何在C#和C++之间创建和调用DLL(动态链接库)文件,以实现这种交互。DLL是一种共享库,它包含可由多个程序同时使用的函数和资源,有助于减少内存占用和代码重复。 首先,我们需要了解在C++中创建DLL...

    C++、C#写的WebService相互调用

    【C++、C#写的WebService相互调用】这个主题涉及到跨平台的Web服务通信,主要关注C++和C#这两种不同编程语言如何通过WebService进行数据交互。WebService是一种基于标准的、平台和语言无关的方式来交换数据,它利用...

    C++和C#相互调用dll

    C++与C#互相调用DLL是进行跨语言编程的一种常见实践,能够利用各自语言的优势,在一个项目中结合使用C++的系统级操作能力和C#的快速开发能力。本文将详细介绍如何在Visual Studio 2005环境下,通过不同的技术手段...

    《C++ for Java Programmers》高清完整英文PDF版

    书中特别提到了如何使用Java原生接口(JNI),这是为了在Java和C++之间建立桥接,让两种语言可以相互操作。 知识点八:C++的细节。书中对于C++程序员在实际编程中可能会遇到的C语言风格的细节进行了深入的讨论。 ...

Global site tag (gtag.js) - Google Analytics