我有一个类A.现在有一个方法就是performSomething()。这基本上以LINE作为输入并检查它是什么类型的LINE并相应地分支并执行预期的任务;
Class A
{
performSomething( LINE )
{
check LINE TYPE
switch( LINE ) {
}
}
};
现在,我被要求引入一个新的内部类来执行此操作。现在,麻烦来了。我完全不确定他的意思是什么,或者这实际上是否有意义!。
如果我需要继续进行,我需要LINE(输入参数)。但是,如果我选择将新类设计为LOCAL类(类内部方法),那么我无法访问它[因为本地自动变量无法访问]; [我也发布了一个问题。)
我不觉得这可以通过使用NESTED类(类内部类)来解决;但是我不太确定它。
他还坚持认为LINE将在嵌套类中可用,所以我不必担心它。但令我头疼的是这条线不是实例变量。这是一个AUtomatic变量。
所以,如果可以通过嵌套类实现这一点,请有人指出我。
谢谢, Moanr Pavan。
答案 0 :(得分:0)
到目前为止,代码存在很大的错误。
例如,switch
很可能是多态的错误方法。在C ++中,我们通常使用virtual
函数,但有时我们也可以使用函数重载和/或模板(如果实际类型在编译时已知)。
其次,对于“内在”阶级没有任何理由,也不清楚这意味着什么。您可以在其他类中使用类,甚至可以在函数内部使用类。所以以下语法就可以了:
class A
{
void performSomething( LINE )
{
class B {
static void performSomething(A* that, LINE) { code };
};
B::performSomething(this, LINE);
}
};
你的编译器会接受这个,但我们不得不问:这有什么意义呢?另请注意,如果我们明确传递B::performSomething
,A
只能访问this
的成员。