-4
В приведенном ниже коде у меня есть класс с двумя атрибутами, мне нужно изменить его в соответствии со значением другого без изменения значения второго. Я не хочу, чтобы создать новую переменную временную, чтобы сделать это (я не хочу, чтобы выделить новую память и очистить старый), мне нужно использовать указателиC++ динамические атрибуты класса 2
#include<iostream>
using namespace std;
class A{
private:
int **m1;
int **m2;
void allocate_mem(int ***ptr){
*ptr = new int*[1];
(*ptr)[0] = new int[1];
}
public:
A(){
allocate_mem(&m1);
m1[0][0] = 1;
allocate_mem(&m2);
m2[0][0] = 1;
}
//I need a method that change m2 (according to the value of m2) without changhig the value of m2
//this following doesn't work
A renew(){
if(m1[0][0]>0)
m2[0][0] = 1000;
}
~A(){
delete[] m1[0];
delete[] m1;
delete[] m2[0];
delete[] m2;
}
void create_output(){
cout << m1[0][0] << endl << m2[0][0] << endl;
}
};
Изменение 'm2' без изменения' m2'? – timrau
О чем вы говорите ?! –
О боже. Это может быть еще одна запись IOCCC. Используя '[0]' для разыменования указателя и без дескрипторов дескрипторов, мы находимся в C и ... urgh. Я выхожу. –