Я немного запутался в решениях учителя для этой задачи, указанных ниже.
Я думал, что когда вы объявляете переменную-указатель, а затем устанавливаете массив, вы делаете что-то вроде:
char *myPointer;
И затем, возможно, в конструкторе вы делаете что-то вроде
myPointer = new char[20];
, почему объявляете символ char * [20] как переменную члена класса?Что это означает?Если это статический массив, почему бы просто не объявить символ char [20];?
Вопрос и решение
Предположим, что класс акций имеет символ (char *), стоимость (int) и акции (int) как частные члены.Запишите декларации минимального класса акций, поддерживающие акции s2 («APPL», 209, 7), s3 («FB», 80);// 7 долей APPL по 209 долл. США, 5 долей FB по 80 долл. << подсказка: действительно минимум… никаких других функций… >> << подсказка: упростите… предположим, что символ может содержать не более 20 символов… >>
class stock {
public:
stock(char * s, int c, int sh=5);
private:
char * symbol[20];
int cost;
int shares;
}
Напишите функции реализации для вышеуказанного объявления
stock::stock(char *s, int c, int sh) {
strcpy(symbol, s); // or other means of deep copy, no point if no deep copy
cost = c;
shares = s;
}
`````````````````````