Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 继承类和名称空间_C++_Visual Studio 2010_Inheritance - Fatal编程技术网

C++ 继承类和名称空间

C++ 继承类和名称空间,c++,visual-studio-2010,inheritance,C++,Visual Studio 2010,Inheritance,我现在要做的是在FUNC.cpp和FUNC.h中进行更改,以将其继承到main.cpp,然后,生成一个图表类,在该类的末尾,is实际上声明FUNC被继承 我想在代码中进行更改,从名称空间到类,以允许继承过程 我有以下几点: 在函数h中: namespace FUNC { void f1(...); void f2(...); } 在FUNC.cpp中 namespace FUNC { void f1(...) { } void f2(

我现在要做的是在FUNC.cpp和FUNC.h中进行更改,以将其继承到main.cpp,然后,生成一个图表类,在该类的末尾,is实际上声明FUNC被继承

我想在代码中进行更改,从名称空间到类,以允许继承过程

我有以下几点:

在函数h中:

   namespace FUNC
{
    void f1(...);
    void f2(...);
}
在FUNC.cpp中

namespace FUNC
{

    void f1(...)
    {

    }

    void f2(...)
    {

    }

}
在test.cpp(同时是一个有test.h的类an)中,可以按如下方式调用f1和f2:

FUNC::f1(...);
FUNC::f2(...);

如果将命名空间更改为类,但仍要使用相同的语法(例如
FUNC::func1()
)调用
func1
func2
),则必须使函数
为静态的

struct FUNC
{
    static void func1();
    static void func2();
};

如果要在继承的类中重写
func1
,则很简单:

struct FUNC2 : public FUNC
{
    static void func1();
};

但是,静态成员函数存在一些问题,因为它们无法轻松访问非静态成员。

我将回答我自己的问题

我必须在之后插入

class FUNC: public TEST
{
    static void func1();
    static void func2();
};

我不知道你在问什么,你说的“继承”是什么意思?您不能继承名称空间。@JoachimPileborg我已经编辑了我的问题,您可以在上面看到。我知道名称空间不能被继承。我必须处理继承观念。其思想是将名称空间更改为类以允许继承。这是我问题答案的良好开端。谢谢我问题的第二部分,是为我的项目生成一个图表类。我想继承FUNC:public main。“怎么可能这样做呢?”梅尔梅德我不确定我是否遵循了你的意愿。“生成图表类”是什么意思?如果要生成类图(例如打印),请签出(例如)。我也不知道你想继承“FUNC:public main”是什么意思?只有一个<代码> main < /Calp>全局函数,它不能在C++中的类或命名空间内。我有Main .CPP/Main .H类(不是默认的主程序),我还希望继承从main类继承的FUNC,用VS2010生成类图。通常没有类main。您可以通过单击按钮而不是运行代码在VS中生成图表。在项目上单击鼠标右键,然后选择“视图类”diagram@doctorlove我想建立班级。我使用的是名称空间,但如果它们真的是类,我将给main起另一个名字:test.cpp/test.h