标签: object-initialization

如何初始化对象数组?

我已经编写了这段代码,但是当我尝试初始化一个Critter对象数组并且不知道它们是关于什么时出现了一些错误。

我的代码:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Critter {
private:
    string crName;
public:
    Critter(string = "Poochie");
    string getName() const { return crName; }
};

Critter::Critter(string n) {
    crName = n;
}

int main() {
    Critter c[10] = { "bob","neo","judy","patrik","popo" }; //here
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Critter {
private:
    string crName;
public:
    Critter(string = "Poochie");
    string getName() const { return crName; }
};

Critter::Critter(string …
Run Code Online (Sandbox Code Playgroud)

c++ arrays runtime-error visual-studio object-initialization

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

如何使C#构造函数语法更加pythonic?

我在python初始化程序中有一些背景知识(本质上是Python对象构造函数语法),在Python中实例化对象的语法如下:

class Account:
     def __init__(self,name=None,address="Not Supplied",balance=0.0):
         this.name = name
         this.address=address
         this.balance=balance
Run Code Online (Sandbox Code Playgroud)

为什么,在C#中,我必须提供默认的构造函数方法的机构,在蟒蛇的时候,我可以声明为可选的,默认值是在通过(见__init__的签名):

public class Account
{
    private string name; 
    private string address;
    private decimal balance;

    public Account (string inName, string inAddress, decimal inBalance)
    { 
        name = inName; 
        address = inAddress; 
        balance = inBalance; 
    }

    public Account (string inName, string inAddress) 
    {
        name = inName; 
        address = inAddress;
        balance = 0;
    } 

    public Account (string inName) 
    { 
        name = inName;
        address = "Not Supplied";
        balance = 0;
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# python constructor default-constructor object-initialization

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

用C++中的括号初始化数组对象

这里有一个有两个私有字段x和y的类;

class Point
{
private:
    int x, y;
public:
    Point(int = 1,int = 1);
    void move(int, int);
    void print()
    {
        cout << "X = " << x << ", Y = " << y << endl;
    }
};
Run Code Online (Sandbox Code Playgroud)

初始化Point对象数组时,输出正常;

Point array1[] = { (10), (20), { 30, 40 } };
Run Code Online (Sandbox Code Playgroud)

输出;

First array
X = 10, Y = 1
X = 20, Y = 1
X = 30, Y = 40
Run Code Online (Sandbox Code Playgroud)

但是,如果我们按如下所示初始化Point数组,则输出很奇怪;

Point array2[] = { (10), (20), (30, 40) …
Run Code Online (Sandbox Code Playgroud)

c++ arrays initialization array-initialization object-initialization

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

如何仅将函数的返回值分配给golang中结构的字段?

假设我们有一个这样的结构:

type Data struct {
  a int
}
Run Code Online (Sandbox Code Playgroud)

我们想要获取返回多个值的函数的单个返回值并将其分配给 Data 对象,例如

data := Data {
  a: strconv.Atoi("1000")
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,因为 Atoi 返回两个值,一个数字和一个错误,所以我们需要以某种方式处理额外的值(错误),但就我而言,我不需要评估错误值,并且不可能使用_关键字将其关闭。

在初始化结构时如何实现这一点,我想摆脱错误返回值

go object-initialization multiple-return-values

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

Java通用对象初始化

请先看一下这个片段:

public MultiThreadManager( Class<T> c) {
    T[] allJobs = (T[]) Array.newInstance( c , MAX_THREAD_SIZE ) ;
    for ( int i = 0 ; i < MAX_THREAD_SIZE ; i ++ ) {
        allJobs[i] = (T) new Object();
        service.submit( allJobs[i] );
        getWaitingThreads().add( allJobs[i] );
    }           
}
Run Code Online (Sandbox Code Playgroud)

这是一个例外:

Exception in thread "main" java.lang.ClassCastException: java.lang.Object cannot be cast to slave.JobTemplate
Run Code Online (Sandbox Code Playgroud)

我想做什么:

MultiThreadManager的构造函数应该采用实现Callable的泛型类型(比如Job.java).创建所有这些通用数据类型(Job,java)的数组.初始化它,以便通用数据类型(Job.java)的构造函数将在执行程序服务中运行并执行它们.

请帮我识别我的错误或建议更好的方法.

先感谢您

谢谢大家,但事情稍微复杂一点:Herez其他信息:

public class Job extends JobTemplate<String> {...details ...}
public abstract class JobTemplate< T > implements Callable<T> {...details..}
Run Code Online (Sandbox Code Playgroud)

最后

MultiThreadManager< Job …
Run Code Online (Sandbox Code Playgroud)

java generics object-initialization

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