直到最近,我还没有说过普通类和内部类/子类之间存在差异.
内部类的实例与其包含类的实例之间的关系是什么,内部类的目的/使它们与众不同的目的是什么?
给出以下代码:
public class Outer
{
public final int n;
public class Inner implements Comparable<Inner>
{
public int compareTo(Inner that) throws ClassCastException
{
if (Outer.this.n != Outer.that.n) // pseudo-code line
{
throw new ClassCastException("Only Inners with the same value of n are comparable");
//...
Run Code Online (Sandbox Code Playgroud)
我可以用我的伪代码行替换什么,以便我可以比较Inner类的两个实例的n值?
尝试明显的解决方案(n != that.n)不编译:
Outer.java:10: cannot find symbol
symbol : variable n
location: class Outer.Inner
if (n != that.n) // pseudo-code line
Run Code Online (Sandbox Code Playgroud) 想知道何时在C#中使用嵌套类是正确的?我们是否有使用它的事件是不合理的,因此不正确?
如果你能给出两种情况的例子谢谢
我让我的应用程序执行其应用程序(保留记录,处理单例等...),我有一个嵌套服务,将处理套接字连接.我以前在它自己的类中有过服务,但是当我提高它的效率时,我认为将它移到应用程序中是一个好主意.我更新了清单:
<service android:name="com.arm.core.ArmApplication$IOService"/>
Run Code Online (Sandbox Code Playgroud)
我认为这是声明嵌套服务的正确方法,但我得到了一个InstantiationException.服务是否需要是静态的,或者我不允许将服务嵌套到另一个类中?
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): FATAL EXCEPTION: main
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): java.lang.RuntimeException: Unable to instantiate service com.android.appion.arm.core.AppionApplication$IOService: java.lang.InstantiationException: com.android.appion.arm.core.AppionApplication$IOService
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at android.app.ActivityThread.handleCreateService(ActivityThread.java:3102)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at android.app.ActivityThread.access$3300(ActivityThread.java:135)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2202)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at android.os.Handler.dispatchMessage(Handler.java:99)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at android.os.Looper.loop(Looper.java:144)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at android.app.ActivityThread.main(ActivityThread.java:4937)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at java.lang.reflect.Method.invokeNative(Native Method)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at java.lang.reflect.Method.invoke(Method.java:521)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-15 14:11:53.167: ERROR/AndroidRuntime(18379): at dalvik.system.NativeStart.main(Native Method) …Run Code Online (Sandbox Code Playgroud) 我有嵌套向量中向量问题,二维数组在C相当于我已经试过代码演示这张贴在众多的网站,都无济于事.
class Board
{
public:
vector< vector<Cell> > boardVect; //Decalre the parent vector as a memebr of the Board class
Board()
{
boardVect(3, vector<Cell>(3)); //Populate the vector with 3 sets of cell vectors, which contain 3 cells each, effectivly creating a 3x3 grid.
}
};
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我收到此错误:
F:\ main.cpp | 52 |错误:无法匹配调用'(std :: vector>)(int,std :: vector)'
第52行是: boardVect(3, vector<Cell>(3));
在使用3个向量类构造父向量时,是否出现错误?
我有一个嵌套类Inner_vector的A类,
class A:
{
public:
class Inner_vector:public Vector
{
bool append(const class Element& element);
};
};
bool A::Inner_vector::append(const class Element& element)
{
add(element);
}
Run Code Online (Sandbox Code Playgroud)
现在我想从A派生一个子类,并自定义内部类"Inner_vector"的"append"和"delete"方法(主要是添加一个新操作),以便调用自定义操作.我怎么能这样做?我是否还应该从A :: Inner_vector中的Child_A中派生一个新的嵌套类作为以下代码
class Child_A: public A
{
public:
class Inner_Child_vector : public A::Inner_vector
{
bool append(const class Element& element);
};
};
bool Child_A::Inner_Child_vector::append(const class Element& element)
{
A::Inner_vector::append();
my_new_operation();
}
Run Code Online (Sandbox Code Playgroud)
或者我不需要从A :: Inner_vector派生并直接重写它?
我非常感谢任何帮助和评论.
我需要从静态类中的方法引用顶级类的变量.
此方法应该作用于顶级类的唯一实例,因此我觉得我不应该在静态类中实例化顶级类.
基本上我想要的东西
public class TopLevel{
// private
int innerV
public static class Inner implements X {
for(i=0; i<innerV,i++){
doSomething
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以this.innerV在for循环和类似的地方说出或类似的东西?
子类是否可以共享相同的模板?例如:
template <class T>
class A
{
private:
T _aObj;
public:
class B
{
public:
T _bObj;
};
};
Run Code Online (Sandbox Code Playgroud)
哪里可以使用T A和B?
当我尝试这个时,我收到以下错误:
错误:A :: B不是模板
如果我有一个嵌套类的类,为什么你不希望它是静态的?是否有一种方法可以让同一个类的两个实例拥有不同的嵌套类?
例如:
class MyClass {
public static class myInnerClass {
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在论坛中窥探一个类似的问题,这可能会帮助我取得成功.
我的C++程序中有一个嵌套类.我试图从嵌套类中的函数访问父类的变量,但我遇到以下错误
ERROR: A non static member reference must be relative to a specific object
Run Code Online (Sandbox Code Playgroud)
我试图访问的变量受到保护,嵌套类是公共的(它的功能也是如此)
以下是描述(或努力)该场景的代码片段
头文件
class A
{
protected:
D x;
public:
int func1(int a);
class B : protected C
{
int func2(int a);
}
}
Run Code Online (Sandbox Code Playgroud)
CPP文件
int A::func1(int a)
{
x = 5;
B z;
int b = z.func2(a);
}
int A::B::func2(int a)
{
int c = x.getValue(a); /* ERROR: A non static member reference
must be relative to a specific object */
}
Run Code Online (Sandbox Code Playgroud)
从某个地方
A …Run Code Online (Sandbox Code Playgroud)