我有一个服务类,它包含it.The中的WindowManager,WindowManager中包含一个简单的LinearLayout,it.The中的LinearLayout为空且透明。我正在尝试为该布局设置一个Alpha值,如下所示:
leftSwipe.getBackground().setAlpha(100) //leftSwipe is a LinearLayout
但我得到的错误如下:
Unable to create service com.example.adarsh.test.Window: java.lang.NullPointerException: Attempt
我正在尝试做的是创建一个基类,从它派生的任何东西都将自动注册到另一个类,例如:
class System;
class Object
{
public:
Object()
{
System sys;
sys.AddObject(this);
}
virtual ~Object()
{
System sys;
sys.RemoveObject(this);
}
};
class System
{
public:
// Some other processing function
class Bank{
float getRateOfInterest(){return 0;}
}
class SBI extends Bank{
float getRateOfInterest(){return 8.4f;}
}
class TestPolymorphism{
public static void main(String args[]){
Bank a = new SBI();
SBI b = new SBI();
a.getRateOfInterest();
所以,我有这个多态的层次结构:
ClassA
Is not abstract, no pure virtual functions, but a few virtual functions
ClassB:public ClassA
Defines an extended interface for a certain type of subclass;
is abstract with pure virtual functions
ClassC:public ClassB
Usable class, no more subclassing
事情是这样的,我将把ClassA和ClassC
我必须写一个程序,它的一个函数将通过抽象基类返回一个派生类,所以当被返回到main的类可以访问派生类时,虚方法。
请记住,我不能更改主程序中的任何内容,因为我不是编写它的人。
#include<iostream>
using namespace std;
class A
{
private:
public:
virtual void DoIt(void)=0;
A(void){};
~A(void){};
};
class B:
public A
{
private:
int Num;
public:
virtual void
我最近刚刚学习了Java中类继承的正确应用,并打算将其应用到我正在用C++编写的一些代码中。
以下是空Node.cpp的标头:
#ifndef Node_h
#define Node_h
#include <string>
using namespace std;
///////////////////////////////////////////////////////
//Class Declarations
class Array;
class Hash;
class Node;
class BodyNode;
class RealNode;
有没有可能在没有虚方法的情况下继承?编译器说下面的代码不是多态的。
示例:
class A {
public:
int a;
int getA(){return a;};
}
class B : public A {
public:
int b;
int getB(){return b;};
}
在另一个类中,我们尝试从A对象向下转换为B对象:
A *a = ...;
B *b = dynamic_cast<B*>(a)
但这会产生以下编译时错误:
cannot dynamic_cast ... (source type is not po
class a //my base class
{
public:
a()
{
foo();
}
virtual void foo() = 0;
};
class b : public a
{
public:
void foo()
{
}
};
int main()
{
b obj; //ERROR: undefined reference to a::foo()
}
为什么它会给我错误?定义了纯虚拟foo。我需要在代码中进行哪些更改才能使其正常工作?我需要在它的构造函数中调用来自基类的纯虚方法。
我注意到,在我的安卓应用程序中,在离开某个片段之后,仍然会调用onCreate()和onDestroy()方法。这会导致我的代码抛出异常,因为onDestroy()方法引用的资源(具体地说,我的ViewModel)在将片段导航离开时不可用。
public class InfoFragment extends Fragment {
private InfoViewModel viewModel;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onC
我想创建一个类,让我们将其命名为A类,它执行其他类中的函数。所以我希望从这个A类和A类继承我的类,以便能够从派生类接收函数地址并执行它们。
到目前为止,我是这么想的:
#include <iostream>
using namespace std;
template <class T>
class A
{
public:
// a typedef for the function I want to execute
// which has no parameters and void as return type
typedef void
我在理解java中的动态绑定和继承方面遇到了一些困难。下面是一小段代码:
printer.print(person); // Printer is printing a person, which says: I am a Person
printer.print(specialPerson); // Printer is printing a special person, which says: I am a SpecialPerson
printer.p
在下面的示例中,我对值类型(int)调用了一个虚方法:
namespace ShortTest
{
class Program
{
static void Main(string[] args)
{
int i = 42;
i.ToString();
((object)i).ToString();
}
}
}
查看Reflector中生成的CIL,我可以看到两个调用的以下代码:
.locals init ([0] int32 i, ...)
...
L
public class Shapes
{
public virtual void Color()
{
Console.WriteLine("Shapes");
}
}
public class Square : Shapes
{
public void Color()
{
Console.WriteLine("Square");
}
}
public class Test
{
public static void main()
{
Shapes s1 = new Shapes();
s1.C
我期望从A的构造函数调用派生方法get()。想知道为什么这没有发生?
方法get()在基类中是虚的,因此派生类B将重写此方法。
#include <iostream>
using namespace std;
class A {
protected:
virtual int get() {
cout<<" in A::get "<<endl;
return 0;
}
public:
A() {
get();
}
};
class B : public A {