2011-07-14 54 views
0

我有一个类A.现在这有一个方法说performSomething()。这基本上将LINE作为输入并检查它是什么类型的LINE并相应地进行分支并执行预期的任务;关于嵌套类的问题[本地和嵌套]

Class A 
{ 
    performSomething(LINE) 
    { 
     check LINE TYPE 
     switch(LINE) { 
     } 
    } 
}; 

现在,我被要求引入一个新的内部类来做这个操作。现在,麻烦来了。我完全不知道他的意思是什么,或者如果这真的在这里有意义!

如果我需要进一步处理,那么我需要LINE(输入参数)。但是,如果我选择将新类设计为LOCAL类(方法内的类),那么我无法访问它[因为本地自动变量不可访问]; [我也发布了一个问题。

我既不觉得可以通过使用NESTED类(班内的类)来解决这个问题;但我不太确定它。

他还坚持LINE可以在嵌套类中使用,所以我不用担心它。但是,我的头脑突破了,这条线不是一个实例变量。这是一个AUtomatic变量。

所以,请有人指出,如果这可以实现彻底的嵌套类。

谢谢, Moanr Pavan。

+0

你可以用你感兴趣的语言来标记它 - 在某些语言中,在同一范围内声明的内部类的变量将可用于内部类中的方法 – antlersoft

+0

ah..forgot提及它是在C++中 – user844631

回答

0

那么,到目前为止,代码存在很多问题。

例如,switch很可能是错误的多态性方法。在C++中,我们通常使用virtual函数,但有时我们也可以使用函数重载和/或模板(如果实际类型在编译时已知)。其次,对于“内在”阶级没有规定的理由,也不清楚这意味着什么。你可以在其他类中使用类,甚至可以在函数内部使用类。所以下面的语法上是OK的:

class A 
{ 
    void performSomething(LINE) 
    { 
     class B { 
      static void performSomething(A* that, LINE) { code }; 
     }; 
     B::performSomething(this, LINE); 
    } 
}; 

你的编译器会接受这个,但我们必须问:这是什么意思?另请注意,如果我们明确通过thisB::performSomething只能访问A中的成员。