#include <iostream>
#include <cstdint>
using namespace std;
class SensorBuffer {
private:
uint8_t* data;
int size;
public:
// Constructor: allocate buffer
SensorBuffer(int n) : size(n) {
data = new uint8_t[size];
}
// Destructor: free buffer
~SensorBuffer(){delete[] data;}
// Copy assignment operator: perform deep copy
SensorBuffer& operator=(const SensorBuffer&other){
if(this == &other){return *this;}
delete[] data;
size = other.size;
data = new uint8_t[size];
for(int i=0;i<size;i++)
{
data[i] = other.data[i];
}
return *this;
}
void set(int index, uint8_t value) {
data[index] = value;
}
void print() const {
for (int i = 0; i < size; i++) {
cout << (int)data[i];
if (i != size - 1) cout << " ";
}
}
};
int main() {
int N1, N2;
cin >> N1;
SensorBuffer A(N1);
for (int i = 0; i < N1; i++) {
int temp;
cin >> temp;
A.set(i, (uint8_t)temp);
}
cin >> N2;
SensorBuffer B(N2);
for (int i = 0; i < N2; i++) {
int temp;
cin >> temp;
B.set(i, (uint8_t)temp);
}
A = B; // Deep copy must occur here
A.print();
return 0;
}
Input
4 10 20 30 40 4 1 1 1 1
Expected Output
1 1 1 1