标签: instantiation

在C#中从存储的缓存初始化构造函数

我不确定如何描述这个问题,但是这里有.我有一个在SQLite数据库中映射的对象的类层次结构.我已经编写了所有在.NET对象和数据库之间进行通信的非平凡代码.

我有一个基本界面如下:

public interface IBackendObject
{
    void Read(int id);
    void Refresh();
    void Save();
    void Delete();
}
Run Code Online (Sandbox Code Playgroud)

这是任何对象的基本CRUD操作.然后我实现了一个封装了大部分功能的基类.

public abstract class ABackendObject : IBackendObject
{
    protected ABackendObject() { } // constructor used to instantiate new objects
    protected ABackendObject(int id) { Read(id); } // constructor used to load object

    public void Read(int id) { ... } // implemented here is the DB code
}
Run Code Online (Sandbox Code Playgroud)

现在,最后,我有了具体的子对象,每个对象在数据库中都有自己的表:

public class ChildObject : ABackendObject
{
    public ChildObject() : base() { }
    public ChildObject(int id) : base(id) …
Run Code Online (Sandbox Code Playgroud)

c# inheritance memory-management object instantiation

1
推荐指数
1
解决办法
995
查看次数

显式实例化模板方法中的编译错误

我有两个不同的模板类.其中一个具有成员函数,该函数返回指向另一个模板类的对象的指针.目前,我无法编译下面的代码,我们非常欢迎任何建议.

main.cpp中

#include <stdio.h>
#include <stdlib.h>
#include <foo.h>
#include <bar.h>

int main(int argc, char **argv){
    ...
    int nParam;
    ...

    CFoo<float> * pFoo = NULL;
    pFoo = new CFoo<float>();

    CBar<float> * pBar = NULL;
    pBar = pFoo->doSomething(nParam); // error: no matching function for call to ‘CFoo<float>::doSomething(int)’

    ...

    delete pFoo;
    delete pBar;

    return (0);
}
Run Code Online (Sandbox Code Playgroud)

foo.h中

#include <bar.h>

template < class FOO_TYPE >
class CFoo{

    public:

        ...

        template < class BAR_TYPE >
        CBar<BAR_TYPE> * doSomething(int);
        ...
};
Run Code Online (Sandbox Code Playgroud)

Foo.cpp中

template < class FOO_TYPE …
Run Code Online (Sandbox Code Playgroud)

c++ templates instantiation

1
推荐指数
1
解决办法
464
查看次数

获取String并从String中表示的类中创建对象

场景:

  • 我有两个名为ListLayout和GridLayout的类,它们都实现了CustomLayout.
  • 用户输入表示他们希望使用的布局的String(例如"ListLayout")

如何根据用户输入的字符串创建ListLayout对象?我需要等同于这样做:

CustomLayout layout = new ListLayout();
Run Code Online (Sandbox Code Playgroud)

理想情况下,我需要找到一个解决方案,它允许我检查输入的String是否对应于在实际创建对象之前实现CustomLayout的预定义类(因为如果它不存在则会抛出错误而我不检查预先).

这真让我思考......提前感谢您的帮助

java string class object instantiation

1
推荐指数
1
解决办法
162
查看次数

C++:指针语法之间的差异

好吧,所以我最近深入研究了C++并且我已经把所有东西都搞砸了.指针最终开始有意义,直到我应该使用它们,如何正确实现它们等.

然而,有一个关于指针的基本用法的一个小问题,我仍然需要回答.我会直接跳到代码:

具有以下类别A和功能foo(A* bar)......

class A
{}

void foo(A* bar)
{}
Run Code Online (Sandbox Code Playgroud)

......以下电话之间有什么区别foo

A* a;
A b;

foo(a);
foo(&b);
Run Code Online (Sandbox Code Playgroud)

他们都编译得很好,据我所知,我没有遇到任何问题.

我认为那A b;是在那里实例化的,而A* a;需要创建new(因为它实际上没有创建对象,它只是对潜在A对象进行了4字节的长引用).

我可以,如果我正确地考虑这个,做a = b;(编辑制作a = &b),然后成功传递afoo.但是,如果我不这样做a = &bfoo尝试读取指向的(不存在的)对象a,则会导致运行时错误.

此外,如果以上是正确的,那么我认为我可以成功通话foo(&b);.

我对么?

谢谢!

c++ pointers instantiation call

1
推荐指数
1
解决办法
234
查看次数

1
推荐指数
2
解决办法
5330
查看次数

Java Class.newInstance错误

在下面的代码中,我得到了java.lang.InstantiationException

(下面是编译独立编译的代码 - 在我的应用程序中,我想维护一个Enum-> Class map,并在从文件读取整数值时,实例化查看地图的相应类).

如何摆脱这个错误?有语法问题吗?我必须使用接口吗?我在这里的理解是有限的.

class Main {
    abstract class Base {
        Base() {};
        void print() {
            System.out.println("I am in Base");
        }
    }


    class D1 extends Base {
        D1() {};
        @Override 
        void print() {
            System.out.println("I am in D1");
        }
    }

    static Class<? extends Base> getMyClass() {
        return D1.class;
    }


    public static void main(String[] args) {
        try {
            Class<?> cc = getMyClass();
            Object oo = cc.newInstance();
            Base bb = (Base) oo; 
            bb.print();

        } catch (Exception ee) {
            System.out.println(ee);
        }; …
Run Code Online (Sandbox Code Playgroud)

java interface class instantiation derived-class

1
推荐指数
1
解决办法
1212
查看次数

如何实例化.drl文件中的对象

我对这个流口水的工作人员全新.因此,我在这里遇到一些麻烦.

rule "Raise the alarm when we have one or more fires"
    when
exists Fire()
then 
    insert( new Alarm() );  
end
Run Code Online (Sandbox Code Playgroud)

当我有这个代码它工作正常.但我想改变这一点:

rule "Raise the alarm when we have one or more fires"
    when
exists Fire()
then 
    $alarm = new Alarm();
    $alarm.RingBell();
    insert( $alarm );  
end
Run Code Online (Sandbox Code Playgroud)

可能你明白我在这里想做什么.我想实例化Alarm类并激活它的RingBell方法.但它给了我这个错误

Rule Compilation error : [Rule name='Raise the alarm when we have one or more fires']
    com/sample/Rule_Raise_the_alarm_when_we_have_one_or_more_fires_cd7449c70a6a48c78f4e291495d23b05.java (8:436) : alarm cannot be resolved

java.lang.IllegalArgumentException: Could not parse knowledge.
    at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:117)
    at com.sample.DroolsTest.main(DroolsTest.java:28)
Run Code Online (Sandbox Code Playgroud)

如果你们帮助我,我会很感激:))

java drools instantiation

1
推荐指数
1
解决办法
6556
查看次数

哪个是实例化小数的更好方法?

private decimal? _income;

public SomeClassName()
{        
    // First way
    _income = new decimal(45000.75)

    // Second way  
    _income = Convert.ToDecimal(45000.75)
}
Run Code Online (Sandbox Code Playgroud)

以上哪两种实例更好?为什么?

c# decimal instantiation

1
推荐指数
1
解决办法
159
查看次数

分配的值不在任何执行路径中使用 - C#

Resharper显示此警告:当我编写以下代码时,"在任何执行路径中都没有使用赋值":

List<obj> testObj = new List<obj>();
testObj = testMethod();
Run Code Online (Sandbox Code Playgroud)

这里testMethod()返回类型List<obj>.但是,当我直接分配testMethod()没有实例化它时,我没有得到警告.

List<obj> testObj = testMethod();
Run Code Online (Sandbox Code Playgroud)

请原谅我的无知,如果我错过了基础知识,但我没有关注编译器如何在testObj没有实例化的情况下分配内存.

其中一个帖子提到了类似的问题:C#这个初始化器真的是多余的吗?但是我没有找到任何关于我的问题的答案,关于testObj变量存储它收到的值的位置testMethod?与原始数据类型不同,"对象类型"只有在实例化后才能存储值.如果我错过了什么,请告诉我.

c# oop instantiation

1
推荐指数
1
解决办法
5070
查看次数

Java之间的区别{Object a = new Object(); a.getVariable()}和{new Object().getVariable()}

我不知道它之前是否被询问(我搜索但找不到)

以下2个代码块之间有什么区别吗?

1:

// Let's say we want to get variable from non-static object
Object a = new Object();
int varWeWant = a.getVariable();
Run Code Online (Sandbox Code Playgroud)

2:

int varWeWant = new Object().getVariable();
Run Code Online (Sandbox Code Playgroud)

如你所见,第二个选项是单行代码,我知道java,两个代码首先创建对象并通过方法检索变量,但我不是java专家,所以我想知道他们是否有任何差异?

对不起,如果这是一个愚蠢的问题:D我只是想知道这个问题太久了

感谢名单

java oop class object instantiation

1
推荐指数
1
解决办法
100
查看次数