2013-08-07 90 views
-2

我现在想要做的是在FUNC.cpp和FUNC.h中进行更改,以将其继承到main.cpp,然后,在最后生成一个图类, FUNC是继承的。继承类和命名空间

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

我是有什么如下:

在FUNC.h:

namespace FUNC 
{ 
    void f1(...); 
    void f2(...); 
} 

在FUNC.cpp

namespace FUNC 
{ 

    void f1(...) 
    { 

    } 

    void f2(...) 
    { 

    } 

} 

在TEST.CPP(这是一个同时类有一个test.h),有可能调用f1和f2如下:

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

我不知道它是什么,你问。 –

+1

“继承”是什么意思?你不能继承名字空间。 –

+0

@JoachimPileborg我编辑了我的问题,你可以在上面看到。我知道命名空间不能被继承。我必须处理遗传概念。这个想法是为了允许继承,从命名空间到类进行更改。 – MelMed

回答

1

如果您将名称空间更改为某个类,但仍想使用相同的语法(例如,)调用func1func2FUNC::func1()),你必须做出的功能static:如果要覆盖继承的类func1那么它的简单

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

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

但是也有静态成员函数的问题,因为他们不能轻易访问非静态成员。

+0

这是我的问题答案的良好开端。谢谢 。 我的问题的第二部分是生成我的项目的图表类。我想继承FUNC:public main。这怎么可能呢? – MelMed

+0

@MelMed我不确定我遵循你想要做的事情。 “生成图课”是什么意思?如果你想产生一个类图到例如打印然后查看例如[Doxygen的](http://www.stack.nl/~dimitri/doxygen/)。当你想继承“FUNC:public main”时,我也不知道你的意思?只有一个'main'全局函数,它不能在C++中的类或名称空间中。 –

+0

我有main.cpp/main.h CLASS(不是默认的主程序),我也想拥有从MAIN类继承的FUNC,用Vs2010生成一个类图。 – MelMed

0

我会回答我的问题

我不得不插入后

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