Advertisement

C++前向声明的应用注意事项

阅读量:

在设计模式的范畴内,简单工厂模式通常包含两个核心类,即Product类(产品类)与ProductManager类(工厂类)。这两个类之间存在相互引用关系,从而导致了所谓的环形引用问题。为了解决这一问题,可以采用前向声明的方式。然而,在使用前向声明时需要注意一个关键点:该声明仅用于标识类的存在,并未包含具体实现,因此不能对所声明的变量进行方法调用或使用该类的实现内容。以下是一个具体示例加以说明:

若删除注释部分则构成正确的前向声明方式,而保留注释则属于错误的前向声明应用形式

编译

复制代码
    g++ main.cpp product.cpp product_manager.cpp -I. -std=c++11
    
      
    

文件

product.h

复制代码
    #pragma once
    
    #include <string>
    
    using namespace std;
    
    class ProductManager;
    
    // Product
    class Product {
    public:
    Product(ProductManager *_manager, string _name);
    
    str

全部评论 (0)

还没有任何评论哟~