我需要添加一個構造函數,它接受一個int參數sz
和一個大小爲sz
的char數組。然後我需要構造函數將私有數據數組arr
的第一個sz
成員設置爲char的自變量數組的sz
成員。將自定義數據數組賦值給自變量數組重載[]
這是我到目前爲止;我不知道如何調用該對象(即,CharPair (arr[ ], 10
)。我試圖構建爲CharPair(char takearr[], int sz);
是不是?如果這是正確的輸出應該是什麼?我得到AAAAAAAAA
#include <iostream>
#include <cstdlib>
using namespace std;
class CharPair
{
public:
CharPair();
CharPair(int sz);
CharPair(char takearr[], int sz);
char& operator[](int index);
int getSize() const;
private:
char arr[100];
char size;
};
int main()
{
char testarr[20] = "AAAAAAAAAAAAAAAAAAA";
CharPair a ;
CharPair b (12) ;
CharPair c (testarr, 10) ;
//test data
a [ 1 ] = 'A' ;
a [ 2 ] = 'B' ;
cout << a [ 1 ] << endl ;
cout << a [ 2 ] << endl ;
for (int i = 0 ; i < 12 ; i++)
cout << b [ i ];
cout << endl;
for (int i = 0 ; i < 10 ; i++)
cout << testarr [ i ];
return 0;
}
char& CharPair::operator[](int index)
{
if (index >= size){
cout << "Outta boundry" << endl;
exit(1);
}
return arr[index];
}
CharPair::CharPair() : size(10)
{
for (int i = 0; i < size; i++)
{
arr[i] = '#';
}
}
CharPair::CharPair(int sz) : size(sz)
{
if (sz >= 100){
cout << "Outta boundry" << endl;
exit(1);
}
for (int i = 0; i < sz; i++)
{
arr[i] = '#';
}
}
CharPair::CharPair(char takearr[], int sz) : size(sz)
{
if (sz >= 100){
cout << "Outta boundry" << endl;
exit(1);
}
for (int i = 0; i < sz; i++)
{
takearr[i] = arr[i];
}
}
int CharPair::getSize() const
{
return size;
}
是什麼的問題是什麼呢? –
我編輯了我的問題@AlexLop。 – newbiecoder