首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从另一个模块调用基类构造函数

从另一个模块调用基类构造函数
EN

Stack Overflow用户
提问于 2014-05-03 11:33:10
回答 1查看 40关注 0票数 0

让我有两个.cpp文件:a.cppb.cpp,它们包含如下类防御:

代码语言:javascript
运行
复制
//a.cpp
class A
{
public:
    A(){ \\some actions }
}
//b.cpp
class A;

class B : A
{
public:
    B():A(){ \\some actions }
}

但是在编译过程中,我有一个错误。该错误的描述如下:

ConcreteSubject.cpp:5:25:错误:无效使用不完整类型‘类主题’ConcreteSubject.cpp:3:7: ConcreteSubject.cpp:3:7: ConcreteSubject.cpp:在构造函数‘ConcreteSubject::ConcreteSubject():ConcreteSubject.cpp:21:38: ConcreteSubject.cpp:21:38: type’Subject‘的前向声明--不是ConcreteSubject的直接基础。

有可能避免#include "a.cpp"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-03 11:35:08

您应该将A的类声明移到头文件中,并将该头文件包含在b.cpp文件中。如果不这样做,b.cpp编译单元就无法知道A类实现(显式或隐式)的构造函数列表。

包括一个cpp文件不是一个好主意。你不应该这么做。

代码语言:javascript
运行
复制
//a.h
class A
{
public:
    A();
}

//a.cpp
A::A(){ \\some actions }

//b.cpp
#include "a.h"

class B : A
{
public:
    B():A(){ \\some actions }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23443859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档