這是我在大學CSCI課程中使用C 完成的作業的一部分
創建一個陣列類,代表大小為n的陣列,其私有屬性為:
創建一個陣列類,代表一個大小為n的陣列,其私有屬性為:
class Array {private: double * a {}; int n;
- 默認構造器
- 通過指定陣列的大小來建構式
- 通過指定陣列的大小來建構式
- 通過指定陣列的大小和陣列中所有元素的預設值來建構式
- 通過復制來建構式
- 通過復制來構造 。
- 解構器
- 附屬器。檢索陣列的大小 。
我面臨的任務是用一個類來定義一個陣列,而且這個類必須包含每個要點所提到的內容。然而,我在第3點上卡住了。我試圖根據用戶輸入并設定為值 n 的陣列的大小,為陣列填充默認值 0(a[0])、1(a1),等等。在這樣做時,我的代碼所做的就是為陣列中的每一個元素分配值 0。
#include <iostream>
使用 命名空間 std.com.cn>。
class MyArray {
private:
double * a {};
int n。
public:
MyArray()。
explicit MyArray(int size);
MyArray(int size, double def_val);
MyArray(const MyArray & a2);
~MyArray()。
int get_Size() const。
void SetElement(int i, double x);
double GetElement(int i)。
void display()。
};
MyArray::MyArray(int size) {
n = size。
a = new double[size] 。
}
MyArray::MyArray() {
a = nullptr;
n = 0;
}
double MyArray::GetElement(int i){
return a[i];
}
void MyArray:: SetElement(int i, double x) {
a[i] = x;
}
MyArray::MyArray(const MyArray & a2) {
n = a2.n;
for (int i = 0; i < n; i ) {
a[i] = a2.a[i]。
}
} //通過復制構造器。
MyArray::~MyArray() {
delete[] a;
}
MyArray::MyArray(int size, double def_val) { //this is where it should assIGN .
n = size。
a = new double[size] 。
for (int i = 0; i < size; i) {
a[i] = i;
}
}
int MyArray::get_Size() const {
return n;
}
void MyArray::display() {
cout << "陣列MyArray的值是。" << endl。
for (int i = 0; i < n; i ) {
cout << a[i] << " "/span>;
}
cout <<endl;
}
int main() {
MyArray a(5)。
a.display()。
return 0;
輸出結果是這樣的
陣列MyArray的值是:0 0 0 0 0
uj5u.com熱心網友回復:
你呼叫了錯誤的建構式 你需要呼叫這個。 MyArray(int size, double def_val) 而不是這個。 MyArray(int size);
像這樣:
int main(){
MyArray a(5,5)。
a.display()。
}
你會得到0,1,2,3,4的輸出。 但我認為這不是任務想讓你做的事情 正如你所說,它應該 "通過指定陣列的大小和陣列中所有元素的默認值來構造"
。所以我認為你應該把你的建構式修改成這樣:
MyArray::MyArray(int size, double def_val) {
n = size。
a = new double[size] 。
for (int i = 0; i < size; i) {
a[i] = def_val。
}
}
uj5u.com熱心網友回復:
在建構式中使用函式std::iota,該函式在數字頭中取一個int:
MyArray::MyArray(int size) {
n = size。
a = new double[size] 。
std::iota(a, a size, 0.0)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/306741.html
標籤:
上一篇:從虛擬類鑄造派生模板類
下一篇:如何洗掉結構中的類變數?
