符号重载
我们利用重载符号operator重载[]自定义个容器
.h文件
#include<iostream>
using namespace std;
class ArrayClass {
private:
int def = 10;
int size = 0;
int *value = (int *) malloc(sizeof(int) * def);
public:
void set(int, int);
int getSize()const;
int operator[](int) const;
};
.cpp文件
#include "ArrayClass.h"
int ArrayClass::getSize() const {
return this->size;
}
void ArrayClass::set(int index, int value) {
*(this->value + index) = value;
this->size++;
}
int ArrayClass::operator[](int index) const {
return *(this->value + index);
}
main文件
#include <iostream>
#include "ArrayClass.h"
void printfArrayList(const ArrayClass &arrayClass){
for (int i = 0; i < arrayClass.getSize(); ++i) {
cout << arrayClass[i]<<endl;
}
}
int main() {
ArrayClass arrayClass;
arrayClass.set(0, 0);
arrayClass.set(1, 1);
arrayClass.set(2, 2);
arrayClass.set(3, 3);
arrayClass.set(4, 4);
arrayClass.set(5, 5);
arrayClass.set(6, 6);
arrayClass.set(7, 7);
printfArrayList(arrayClass);
}
|