标签: clone

如何将祖先复制到后代

假设我有一只动物,现在我想把它变成一只狗.我如何在java中执行此操作?

现在我有一个看起来像的构造函数

public Dog(Animal animal) {
  this.setProperty(animal.getProperty);
  ...
}
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但它很脆弱.还有其他建议吗?

java inheritance clone copy

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

克隆抽象基类(不干涉派生)

我遇到了一个具有挑战性的问题,这个问题一直无法解决 - 希望到现在为止.我正在开发自己的框架,因此试图为用户提供所有代码复杂性的灵活性.

首先,我有一个用户可以实现的抽象基类,显然简化了:

class IStateTransit
{
public:
    bool ConnectionPossible(void) = 0;
}

// A user defines their own class like so
class MyStateTransit : public IStateTransit
{
public:
    bool ConnectionPossible(void){ return true; }
}
Run Code Online (Sandbox Code Playgroud)

接下来,我定义一个工厂类.用户可以注册自己的自定义状态传输对象,稍后通过使用他们选择的字符串标识符来引用它们:

class TransitFactory : public Singleton<TransitFactory>
{
public:
    template<typename T> void RegisterStateTransit(const string& name)
    {
        // If the transit type is not already registered, add it.
        if(transits.find(name) == transits.end())
        {
            transits.insert(pair<string, IStateTransit*>(name, new T()));
        };
    }

    IStateTransit* TransitFactory::GetStateTransit(const string& type) const
    {
        return transits.find(type)->second;
    }; …
Run Code Online (Sandbox Code Playgroud)

c++ abstract-class clone copy

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

C# 如何克隆列表列表

我有类属性和值。我不知道如何克隆列表中的项目值。

public class Attribut : ICloneable
{
    public Attribut()
    { }

    public Attribut(List<Values> value)
    {
        this.Values = value;
    }

    public object Clone()
    {
        return this.MemberwiseClone();
    }

   //other members



    List<Values> values = new List<Values>();y

    public List<Values> Values
    {
        get { return values; }
        set { values = value; }
    }
}


[Serializable]
public class Values : ICloneable
{
    public Values()
    {
    }

    public Values(string name)
    {
        this.Name = name;
    }

    public Values(string name, int count)
    {
        this.Name = name;
        this.Count = …
Run Code Online (Sandbox Code Playgroud)

c# clone

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

在git clone之后获取完整的提交历史记录

我是一个项目的唯一开发人员,我在多个计算机上工作,一些在VM上工作.在gitHub上执行我的repo的git clone后,对reflog的调用只显示克隆的项目.如何更新这个新的克隆仓库以显示完整的历史记录?

git clone reflog

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

C++ 中的克隆函数

我正在尝试实现 .cpp 文件中的 .h 文件中的虚拟函数。这是一个作业,所以我不能仅仅使该函数成为非虚拟函数。这是一个克隆函数,它调用类的复制构造函数。功能:

virtual Item* clone() const;
Run Code Online (Sandbox Code Playgroud)

在课堂上

Ingredient : public Item {
Run Code Online (Sandbox Code Playgroud)

当我在 Ingredient.cpp 文件中实现它时,我有:

Ingredient::clone () const {
    return new Ingredient ( *this );
} 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译时,出现以下两个错误:

Ingredient.cpp:23:13:错误:C++ 需要所有声明的类型说明符

Ingredient::clone () const {
        ^
Run Code Online (Sandbox Code Playgroud)

Ingredient.cpp:24:9:错误:无法使用“Ingredient *”类型的右值初始化“int”类型的返回对象

    return new Ingredient ( *this );
           ^~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

产生 2 个错误。

我不明白我在这里做错了什么,因为我应该使用取消引用的 *this self 指针。有什么建议么?

c++ constructor clone copy

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

在 C# 中生成列表的新实例

我有一个问题,使用C#,如果我初始化一定名单,可以说List<T> exampleList使用其他预先存在的列表,可以说toModify这样的:List<T> exampleList = new List<T>(toModify)。当我稍后修改toModify列表时,新创建的列表也会修改自身。如果通过由基准的值不应该的值exampleList保持不变,因为它是从其他的一个产生的?

TLDR:当我更改第二个列表时,我使用另一个列表(第二个列表)初始化的列表的值会发生变化。我来自 Java 背景,无法理解为什么会发生这种情况。我总是必须使用克隆吗?

c# clone reference list

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

将数据克隆到另一个主机的Docker容器

我有两个正在运行的docker容器.一个容器有MySQL数据,另一个容器有Tomcat中的Java Web应用程序.

如何使用数据将MySQL容器克隆到另一个Docker主机?

尝试保存/加载方法.但没有成功,因为没有数据

但Java Web应用程序容器正在运行

containers clone docker

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

如何在Java中克隆BlockingQueue?

在我的Java应用程序中我有

BlockingQueue<HashMap<Integer, double[]>> q
Run Code Online (Sandbox Code Playgroud)

我该如何克隆它?

java queue clone java-8

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

克隆的对象并不相等

尝试实现深度复制,但是当我在 main 中使用 equal() 测试我的方法时,尽管所有数据都是相同的,但结果却是错误的。

这是我的克隆方法:

  @Override
    public Object clone() { try {
            // shallow copy
            BankAccount clone = (BankAccount)super.clone();
            // deep copy
            clone.createDate = (java.util.Date)(createDate.clone());

            return clone;
        }
        catch (CloneNotSupportedException y) {
           return null; }
Run Code Online (Sandbox Code Playgroud)

这是我的主要测试:

public static void main(String[] args) {
        BankAccount account1 = new BankAccount(1111, 5347);
        BankAccount account2 = (BankAccount)account1.clone();

        System.out.println(account2.equals(account1));
Run Code Online (Sandbox Code Playgroud)

java clone

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

当子进程终止时阻止父进程终止?

我想生成一个进程并使用 stdin/out 与其进行通信。这一切都有效,但我注意到当孩子通过信号终止时,父母也会这样做。下面是一个例子。如果取消注释 true,程序将打印“完成”。如果您编译并取消注释 selfterm,则它不会,并且父进程将终止并退出代码 137。为什么父进程会终止以及如何阻止它?

主程序

#include <signal.h>
#include <sched.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
int doexec(void*) {
    //char*bin = "/usr/bin/true";
    //char*bin = "/tmp/selfterm";
    char*args[] = {bin, 0};
    int err = execv(bin, args);
    return err;
}
int main(int argc, char *argv[]) {
    int pid = clone(doexec, malloc(2*1024*1024)+2*1024*1024, CLONE_VFORK|SIGCHLD, 0);
    int status=0;
    wait(&status);
    puts("Finish");
}
Run Code Online (Sandbox Code Playgroud)

selfterm.c

#include<signal.h>
int main(int argc, char *argv[]) { kill(0, 9); }
Run Code Online (Sandbox Code Playgroud)

c linux clone

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

标签 统计

clone ×10

copy ×3

java ×3

c# ×2

c++ ×2

abstract-class ×1

c ×1

constructor ×1

containers ×1

docker ×1

git ×1

inheritance ×1

java-8 ×1

linux ×1

list ×1

queue ×1

reference ×1

reflog ×1