50 / 50 / 9
Регистрация: 10.03.2010
Сообщений: 180
1

Использование char* в классах

16.03.2010, 19:06. Показов 7658. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброе время суток!
В общем пытаюсь создать простейший класс с использованием char* для представления строк
При компиляции появляются непонятные ошибки(мне непонятные). Использую среду разработки MVS2008
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//Заголовочный файл с описанием класса
#pragma once
 
class Test
{
private:
    char *name;
public:
    Test(void);//конср-р по ум-ю
    Test(char *snew, int count);//char *snew - строка для name, count - количество символов
    char * GetInfo(void);//получить значение name
    void SetInfo(char *snew, int count);//записать новое зн-е для name
};
//файл реализации класса описанного выше
#include "StdAfx.h"
#include "Test.h"
 
Test::Test(void)
{
    Test::name = new char[1];
}
 
Test::Test(char *snew, int count)
{
    name = new char[count];
    if (name) name = snew;
}
 
Test::GetInfo(void)
{//Здесь первая ошибка: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
//Здесь и вторая: int Test::GetInfo(void): перегруженная функция отличается от 'char *Test::GetInfo(void)' только возвращаемым типом 
    return name;
}
 
Test::SetInfo(char *snew, int count)
{//Здесь выкидывает подобные ошибки
    delete [] name;
    name = new char[count];
    if (name) name = snew;
}
Подскажите с чем это связано и что можно сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2010, 19:06
Ответы с готовыми решениями:

Strcpy() и работа с char-данными в классах
Ребят, всем мира! Такой вопрос: насколько я знаю функция strcpy имеет такой прототип...

Использование статический данных в классах
Добрый день! Помогите, пожалуйста! Есть задача: создать в классе статическое поле - годовой...

Использование полей и методов в дочерних классах
Возникла проблема class Subj { public: char name; char prepod; int hours; ...

Использование char в классе
4. Как сделать все тоже самое(с пункта 1 по 3) но чтобы это были константные значения которые в...

4
1260 / 798 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
16.03.2010, 19:19 2
С непониманием того что ты делаешь...
0
32 / 32 / 16
Регистрация: 18.08.2009
Сообщений: 93
16.03.2010, 19:52 3
Нужно указать тип возвращаемого значения
C++
1
2
3
4
5
6
7
8
9
10
11
char* Test::GetInfo(void)
{
        return name;
}
 
 void Test::SetInfo(char *snew, int count)
{
        delete [] name;
        name = new char[count];
        if (name) name = snew;
}
И ещё
if (name) name = snew;
тут ты просто копируешь значения указателя
snew в name и эти указатели теперь указывают на одну и ту-же строку.
тут лучше использовать
strcpy(name,snew);
1
50 / 50 / 9
Регистрация: 10.03.2010
Сообщений: 180
17.03.2010, 00:08  [ТС] 4
Спасибо))

Добавлено через 2 часа 15 минут
А можно вместо char* использовать System::String?

Добавлено через 1 час 54 минуты
Или преобразовать std::string или char * в System::String?
0
4337 / 1506 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
17.03.2010, 08:20 5
C++
1
2
3
4
char* SystemStringToChar(System::String^ string) 
{
    return (char*)(void*)Marshal::StringToHGlobalAnsi(string);
}
C++
1
2
3
4
System::String^ CharToSystemString(char* ch) 
{
    return gcnew System::String(ch);
}
1
17.03.2010, 08:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2010, 08:20
Помогаю со студенческими работами здесь

Подскажите использование char** на примере
Подскажите использование char** на примере

Использование переменной типа char в цикле for
Ребята, подскажите пожалуйста, как использовать 8-ми битную переменную в цикле for? Неправильный...

Использование функций Getch(), putch(char)
Ребята помогите разобраться. Толком не объяснили. Сижу ломаю голову. как это прописать. ***...

Использование стандартной библиотеки С. Char и опции консольного приложения
Всем привет. Сломал уже голову над тем, как можно в С++ из char вытащить число. В char передаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru