みなさん、こんにちは。
科学計算のための数値手法のコレクションを含むC++クラスライブラリを開発する必要があります。ライブラリは、ヘッダーファイル「Vector.h」に記述されているいくつかの基本的な機能を備えたVectorクラス(ポインタを使用)を実装する必要があります。
#ifndef VECTOR_H
#define VECTOR_H
template <class T>
class CVector {
private:
int nn; //size of array
T *v; //pointer to array of data
public:
//Default constractor
CVector();
//zero based array
CVector(int n);
//initialize to constant of value a
CVector(int n, const T &a);
//initialize to array a
CVector(int n, const T *a);
//copy constractor
CVector(const CVector &rhs);
//assignment
CVector & operator=(const CVector &rhs);
//i'th element
inline T & operator[](const int i);
inline const T & operator[](const int i) const;
inline int size() const;
//resize (contents not preserved)
void resize(int newn);
//resize and assign a constant value
void assign(int newn, const T &a);
//deconstractor
~CVector();
};
#endif /* VECTOR_H */
私はC++の初心者であり、上記のコードのコンストラクターと関数を理解するのに混乱があります。
私の質問は次のとおりです。
1-次のコンストラクターの概念は何ですか?
//initialize to array a
CVector(int n, const T *a);
ベクトルを配列に初期化する方法を意味しますか?
2-コピーコンストラクタと代入コンストラクタの違いは何ですか?
//copy constractor
CVector(const CVector &rhs);
//assignment
CVector & operator=(const CVector &rhs);
3-この関数がベクトルのi番目の要素を返すことであることを私は知っています:
//i'th element
inline T & operator[](const int i);
しかし、それとこれの違いは何ですか:
inline const T & operator[](const int i) const;
それらを.cppファイルに実装する方法と、メインでそれらを呼び出す方法を知るために、概念を理解する必要があります。助けていただければ幸いです。
よろしくお願いします;