Мне нужно сохранить массив символов внутри класса, а затем вернуть его. Я должен признать, что я немного запутался в указателях и попробовал все, что мог, но не могу заставить его работать. Вот что у меня есть:Сохранение массива char в классе, а затем его возврат
#include <iostream>
using namespace std;
class Test {
public:
void setName(char *name);
char getName();
private:
char m_name[30];
};
void Test::setName(char *name) {
strcpy(m_name, name);
}
char Test::getName() {
return *m_name;
}
void main() {
Test foobar;
char name[] = "Testing";
foobar.setName(name);
cout << foobar.getName();
}
Конечно, я ожидаю SetName(), чтобы сохранить строку «Проверка» внутри класса, и GetName() должен возвращать «Тестирование». Но вместо этого я получаю только первую букву Т. Что я делаю неправильно?
Я предполагаю, что я должен использовать std-строки, но сначала я хотел бы понять, почему это не работает. Насколько я знаю, это должно работать и с массивами символов?
Вы обращаете внимание на предупреждения компилятора? :( – 2009-10-29 07:28:22