次のように定義されたクラスがあります。
class dimension{
public:
dimension();
const char* getname();
long ing getlength();
void setname(const char* text)
void setlength(long int size)
virtual ~dimension();
private:
const char* name;
long int length;
}
関数に関するエラーが発生setname
してsetlength
おり、重要であるため、それらの定義は次のとおりです。
void dimension::setname(const char* text)
{
dimension::name = text;
}
void dimension::setlength(long int size)
{
dimension::length = size;
}
現在、ファイルからクラス次元のオブジェクトの配列を読み取るために使用している2つの関数があります。それらの定義は次のとおりです。
void read_dimension(dimension** dims, int*ndims, const char* text, long int size)
{
int i;
*dims = new dimension[*ndims];
for(i=0; i<ndims; i++)
{
(*dims)[i].setname(text)
(*dims)[i].setlength(size)
}
}
void read_file(char *path, dimension** dims, int *ndims)
{
//do-- open file and read the variables ndims, text and size from it.
read_dimension(dims, ndims, text, size);
//do-- print name and length of all elements of (*dims).
}
今、私はこれらの関数をメインで次のように呼び出しています
int main()
{
//do-- get file path
dimesnion* gdims;
int num_dims;
read_file(path, &gdims, &num_dims);
//do-- print name and length of each element of gdims.
return 0;
}
コードを実行すると"name"
、関数から出力された変数は異なりますが、変数は同じです。なぜこれが起こっているのかわかりません。誰かが助けてくれたらうれしいです。read_dimension()
main()
"length"