いや無理。それは無理。
二日で教えられるもんなら四半世紀やってきた僕の立つ瀬がねっす。
「そこをなんとか、サワリのとこだけでも」ってことやったんで
ちょーキホンなクラスの書き方とか教えてやることに。
新人クン、Cはそこそこ書けるみたいなんで
C++文法/構文をざっくり流して演習問題:
「intを要素とする可変長配列Vectorおよび
末尾に追加するadd(int val)を実装してみそ?」
彼の書いたコード:
class Vector {
int* data; // 配列本体
int index; // 次にaddする位置(=要素数)
int capacity; // dataの容量
public:
Vector(int cap);
~Vector();
bool add(int val);
};
Vector::Vector(int cap) {
capacity = cap;
data = new int[capacity];
index = 0;
}
Vector::~Vector() {
delete[] data;
}
bool Vector::add(int val) {
if ( index >= capacity ) return false; // 容量オーバー
index++;
data[index] = val;
return true;
}
...おぅ、けっこー書けてんじゃん...おんや?
「おーい、バグってんよ?」
「え!? どこっスか?」
「ほらココ。Vector::addでdata[0]が空席になってる」
「ホントだー。すぐ直しますっ」
3分後
Vector::Vector(int cap) {
capacity = cap;
data = new int[capacity];
index = -1;
}
ばっかやろーー!!!