C++ IDE Netbeans 或 Eclipse 不支持类继承吗?

Posted

技术标签:

【中文标题】C++ IDE Netbeans 或 Eclipse 不支持类继承吗?【英文标题】:Doesn't C++ IDE Netbeans or Eclipse support class inheritance? 【发布时间】:2010-06-22 14:11:03 【问题描述】:

我正在使用 NetBeans IDE 6.8 创建 C++ 项目。然而,虽然我使用类继承,但在我看来它无法识别派生类。这是我所拥有的:

class A

public:
    A(vector<double> a, double b) ...
;

class B : public A

public:
    additionalfunction(...) ...
;

main()

    vector<double> c = something;
    double d = 0;
    B b=B(c, d);

编译器告诉我“B(c,d)”没有被声明。我尝试了 Eclipse C++,它告诉我同样的事情。这是为什么?是不是因为两个IDE都不支持C++继承?我该怎么办?

感谢任何回复。

【问题讨论】:

您是否为 B 提供了正确的构造函数? (即一个接受一个向量并作为参数加倍的。) 我很确定是否支持继承并不取决于 IDE,但 IDE 使用的编译器决定了您会遇到什么错误(并非所有 C/C++ 编译器都是一样的)。您从哪里获得此代码示例,他们告诉您在哪个 IDE 中使用它?它应该编译好吗?你知道 NetBeans 和 Eclipse 用的是什么编译器吗? 这是 gcc。谢谢。问题解决了。 【参考方案1】:

子类不继承构造函数。您试图调用 B(double, double),但没有 B(double, double)。您可以定义 B(double, double),也可以使用 C++ FAQ 中的this pattern。

【讨论】:

我明白了。谢谢。这很有帮助。【参考方案2】:

在 C++ 中,构造函数(和析构函数)不像常规方法那样被继承。您需要定义 B(vector, double)。但是,您可以对初始化列表中的父构造函数执行某种调用:

public:
    B(vector<double> a, double b) : A(a, b)
        ...
    

【讨论】:

【参考方案3】:

我建议在 B 类中实现构造函数。

【讨论】:

以上是关于C++ IDE Netbeans 或 Eclipse 不支持类继承吗?的主要内容,如果未能解决你的问题,请参考以下文章

集成 Qt 框架、Netbeans IDE、Visual Studio C++ 编译器

Eclipse CDT vs NetBeans C++ vs [重复]

NetBeans C++

将 hsqlDB 集成到 netbeans 7 IDE

高分100,一个简单问题,JAVA集成环境NetBeans IDE 各个文件夹都是干啥的?

NetBeans IDE 与 NetBeans Platform有啥区别