我想让它成为我的Record创建程序的用户可以创建自己的记录。解决这个问题的最佳方法是什么?
我可以使用数组或向量作为变量名吗?
int RecU[100];
class Record
{...};
int main()
{
Record RecU[1];
}
我试过了,我的程序崩溃了,所以我不确定它是否可能。
答案 0 :(得分:1)
一个问题是你有RecU
的两个定义,它们彼此无关。有全局的,main()
中定义的那个隐藏了全局的那个。
答案 1 :(得分:1)
如果您希望客户端代码能够随意实例化Record
,那么您所要做的就是确保至少有一个构造函数可用(或工厂方法)。通常情况就是如此。如果你宣布你的班级是这样的:
class Record
{
};
...然后没有什么可以防止客户端代码实例化它。他们可以简单地这样做:
int main()
{
Record my_record;
}
在您的OP中,看起来您正在尝试创建一个包含100 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
}