我是否在动态对象数组中使用方法填充对象字段。它有效,但是它是对的吗?
EXAM* Array = new EXAM[n];
for (int i=0;i<n;i++)
{
cout<<endl;
cout<<"Please type a name of the student: ";
cin>>naMe;
Array[i].setName(naMe);//Is it OK to access an object method this way in case of dynamic allocation?
cout<<endl<<"Please type the date of exam: ";
cin>>daTe;
Array[i].setDate(daTe);
cout<<"Please type mark: ";
cin>>maRk;
Array[i].setMark(maRk);
}
答案 0 :(得分:2)
是的,以下结构是等效的:
pointer[i].method();
(pointer + i)->method();
(*(pointer + i )).method();
与此类似:
object.method();
(&object)->method();
(*(&object)).method();
那只是不同的语法来表达同样的事情。指针来自无关紧要,即它指向动态分配的内存,本地或全局对象。使用指针和数组的语法保持不变。
答案 1 :(得分:0)
是什么让你认为这不对?
如果mark和date也是字符串(或者在setDate和setMark函数中转换),这看起来好像代码!