我试图创建一个自定义类型的数组,就像C++中的对象一样。由于C++支持int、float等本机对象,因此创建它们的数组不是问题。
但当我创建一个类并创建一个数组时,它就不起作用了。
下面是我的代码:
#include <iostream>
#include <string.h>
using namespace std;
class Employee
{
string name;
int age;
int salary;
public:
Employee(int agex, string namex, int salaryx)
{
name = namex;
age = agex;
salary = salaryx;
}
int getSalary()
{
return salary;
}
int getAge()
{
return age;
}
string getName()
{
return name;
}
};
int main(void)
{
Employee **mycompany = {};
//Create a new Object
mycompany[0] = new Employee(10, "Mayukh", 1000);
string name = mycompany[0]->getName();
cout << name << "\n";
return 0;
}
没有编译错误,但当我运行程序时,它崩溃了。我不知道这里到底发生了什么。
请帮帮忙。
Here are some more details:
OS: 64bit Windows 8.1 on Intel x64 (i3)
Architecture of Compiler: MinGW64 G++ Compiler
这里的建议一如既往地是使用一些STL contanier,如std::vector
。
如果您真的必须通过手动内存分配来完成,首先您需要一个默认的employee
构造函数:
//...
Employee() = default; // or Employee(){}
Employee(int agex, string namex, int salaryx)
{
name = namex;
age = agex;
salary = salaryx;
}
//...
其次,使用内存分配的对象数组如下所示:
// Employee array with 2 employees
Employee *mycompany = new Employee[2] {{10, "Mayukh", 1000}, {20, "Mayukh2", 2000}};
不要忘记删除后的内存:
delete [] mycompany;
现场演示
问题内容: 我有一个需要将对象数组存储在变量中的要求。对象是不同类型的。请参考以下示例: 注意第二个元素是字符串本身的数组。经过研究,我想将其存储为以下接口类型: 尽管如此,我还是遇到了一些无法找到的编译错误。 问题答案: 您要的是可能的- 游乐场链接: 但是您可能不想这样做。您正在与类型系统进行斗争,如果您这样做,我会质疑您为什么要使用Go。考虑利用类型系统- 游乐场链接:
我试图创建一个由子类定义的对象数组(我认为这是正确的术语)。我可以看到这个问题反复出现,但实现仍然存在问题。 我的代码 给出错误 线程“main”java.lang.NullPointerException中出现异常。 为了使其合理化,我将其分解为最简单的术语: 这似乎奏效了。我只是看不出我的两个例子有什么不同。我知道我的第一个没有意义,但是MyClass最终会包含更多的数据。) 我很肯定这个问题
我们通过添加所有必需的对象,使用内部库(C)以编程方式创建PDF,以便PDF阅读器能够正确地呈现它们。目前,我们正在增强库以支持PDF格式的数字签名。我们的用户将使用USB令牌或Windows证书签署PDF。在研究带有数字签名的原始PDF文件时,我们能够理解除Sig类型对象内容之外的所有对象。 我们参考了https://www.adobe.com/devnet-docs/acrobatetk/to
本文向大家介绍如何在Python中创建类对象?,包括了如何在Python中创建类对象?的使用技巧和注意事项,需要的朋友参考一下 使用该类的构造函数创建一个类对象。然后将该对象称为类的实例。类实例化使用函数表示法。 在下面的代码中,我们定义一个类并创建了相同类的实例,如下所示
本文向大家介绍如何在C#中创建StringBuilder?,包括了如何在C#中创建StringBuilder?的使用技巧和注意事项,需要的朋友参考一下 要在C#中创建StringBuilder,代码如下- 示例 输出结果 这将产生以下输出- 示例 让我们看另一个例子- 输出结果 这将产生以下输出-
例如,类的ViewBag属性,我们可以动态地获取/设置值,并向该对象添加任意数量的附加字段或属性,这很酷。我想在其他类型的应用程序中使用类似的东西,除了MVC应用程序和类之外。当我试图创建动态对象并设置它的属性时,如下所示: 我有,带有message属性或索引器'<>f__anonymoustype0.a'不能赋值--它在第2行中是只读的。我也认为这不是我想要的。也许有什么课可以让我做一些类似的事