C++ 让用户创建自己的类实例

C++ 让用户创建自己的类实例,c++,arrays,class,vector,C++,Arrays,Class,Vector,我想让我的记录创建程序的用户能够创建他们自己的记录。解决这个问题的最佳方法是什么 我可以使用数组或向量作为变量名吗 int RecU[100]; class Record {...}; int main() { Record RecU[1]; } 我试过了,但我的程序正在崩溃,所以我不确定这是否可行。一个问题是,您有两个关于RecU的定义,它们之间没有任何关系。有一个是全局的,有一个是在main()中定义的,它隐藏了全局的。如果您希望客户端代码能够随意实

我想让我的记录创建程序的用户能够创建他们自己的记录。解决这个问题的最佳方法是什么

我可以使用数组或向量作为变量名吗

 int RecU[100]; 

 class Record 
   {...};

 int main()
   {
   Record RecU[1]; 
   }

我试过了,但我的程序正在崩溃,所以我不确定这是否可行。

一个问题是,您有两个关于
RecU
的定义,它们之间没有任何关系。有一个是全局的,有一个是在
main()
中定义的,它隐藏了全局的。

如果您希望客户端代码能够随意实例化
记录
,那么您所要做的就是确保至少有一个构造函数可供它们使用(或工厂方法)。通常情况就是这样。如果您这样声明您的类:

class Record 
{
};
class Record 
{
};

static const unsigned num_records = 100;

Record the_records[num_records];

int main()
{
  for( unsigned i = 0; i < num_records; ++i )
    Record& that_record = the_records[i];  // 'that_record' is a ref to one of the records
}
…那么就没有什么可以阻止客户端代码实例化它了。他们可以简单地做到这一点:

int main()
{
  Record my_record;
}
在您的OP中,您似乎试图创建一个包含100条
记录的数组。你是这样做的:

class Record 
{
};
class Record 
{
};

static const unsigned num_records = 100;

Record the_records[num_records];

int main()
{
  for( unsigned i = 0; i < num_records; ++i )
    Record& that_record = the_records[i];  // 'that_record' is a ref to one of the records
}
课堂记录
{
};
静态常量无符号num_记录=100;
记录_记录[num_记录];
int main()
{
for(无符号i=0;i
需要先初始化数组中的每条记录,然后才能使用它:记录[0]=新记录();var firstRecord=RecU.First()@Holystream:它们不是指针。你具体说的“崩溃”是什么意思?这就是你使用的代码吗?你说的“用户”或“创建他们自己的记录”到底是什么意思?哇,哈哈哈。我在想C#程序。我的错。我应该看看C++标签:@戴维T:说ReCu周围的堆栈是腐败的。我的意思是使用类数据类型创建它们自己的变量。我不敢相信我没有看到这一点,我一直忘记类是数据类型,那么你怎么做呢?更好的是,你创建了一个
std::vector
@David,是的,我想提一下,但是在我打字的时候忘了!