Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187

Связь классов и методов

06.03.2013, 18:51. Показов 963. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите понять в чём проблема,в классе TTopic создал метод типа другого класса,а компилятор на это ругается,что не так?
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
#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;
class TMessage
{
public:
    char Topic[30];
    char Author[30];
    char Text[250];
};
 
class TTopic
{
public:
    TMessage* AddMessage(char* topic,char* author,char* text);
    void DeleteMessage(int n);
    void GetMessage();
    int Count();
};
 
TMessage* TTopic::AddMessage(char* topic,char* author,char* text)
{   
    TMessage* p;
    strcpy(p->Topic,topic);
    strcpy(p->Author,author);
    strcpy(p->Text,text);
    return p;
}
 
 
 
void main()
{
    int* i=0;
    TTopic top;
    TMessage* p=top.AddMessage("Stiven King","kniga","parapapa");
    cout<<&p;
    getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.03.2013, 18:51
Ответы с готовыми решениями:

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как вынести методы из классов Panel и...

Определение классов и методов
Доброго времени суток! Изучаю язык не долго, самостоятельно и есть проблемка - не могу понять, как определяются методы классов( в VB,...

Вызов методов из классов
class B; class A { public: void foo() { B x; //Хотел вызвать метод нижнего класса. (Без наследования). x.foo(); } ...

9
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
06.03.2013, 18:56
ты не создаёшь объект TMessage, а просто объявляешь указатель
0
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
06.03.2013, 19:00
Кстати говоря, а это в студии писалось? Судя по stdafx - в студии. Оная у меня лишь на strcpy выругалась.

Да, и саму ошибку пожалуйста)
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
06.03.2013, 19:07
Цитата Сообщение от SKS-65 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
TMessage* TTopic::AddMessage(char* topic,char* author,char* text)
{   
    TMessage* p;//просто указатель который ссылается на мусор, объект не создан
    strcpy(p->Topic,topic);
    strcpy(p->Author,author);
    strcpy(p->Text,text);
    return p;
}
нужно заменить на
C++
1
TMessage* p = new TMessage;
тогда нужно добавить в маин + так выводить нельзя

C++
1
2
3
4
5
6
7
8
9
...
    TMessage* p=top.AddMessage("Stiven King","kniga","parapapa");
    //cout<<&p; ошибка
    cout<<p->Topic<<'\n'
          <<p->Author<<'\n'
          <<p->Text<<'endl;
    delete p;
    getch();
}
2
 Аватар для lpvoid
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
06.03.2013, 19:08
О, дурень я! И ведь действительно)
0
6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187
06.03.2013, 19:29  [ТС]
спасибо
но вот ещё,у меня ругается именно вот здесь
C++
1
TMessage* TTopic::AddMessage(char* topic,char* author,char* text)
подчеркивает AddMessage

Добавлено через 4 минуты
я когда по модулям расписываю у меня ошибка,а если нет то нет её
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
06.03.2013, 19:34
компилятор чего пишет?
0
6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187
06.03.2013, 21:25  [ТС]
error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
06.03.2013, 21:34
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
41
42
43
44
#include <iostream>
#include <conio.h>
#include <cstring>
 
using namespace std;
class TMessage
{
public:
    char Topic[30];
    char Author[30];
    char Text[250];
};
 
class TTopic
{
public:
    TMessage* AddMessage(char* topic,char* author,char* text);
    void DeleteMessage(int n);
    void GetMessage();
    int Count();
};
 
TMessage* TTopic::AddMessage(char* topic,char* author,char* text)
{
    TMessage* p = new TMessage;
    strcpy(p->Topic,topic);
    strcpy(p->Author,author);
    strcpy(p->Text,text);
    return p;
}
 
 
int main()
{
    int* i=0;
    TTopic top;
    TMessage* p=top.AddMessage("Stiven King","kniga","parapapa");
    cout<<p->Author<<'\n'
       <<p->Text<<'\n'
      <<p->Topic<<'\n'<<endl;
    delete p;
    getch();
    return 0;
}
по модулям не разносил, компилятор MSVC, работает...
0
6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187
06.03.2013, 22:29  [ТС]
ладно спасибо,потом разберусь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.03.2013, 22:29
Помогаю со студенческими работами здесь

Наследование классов. Конфликт методов
Здравствуйте! Проблема следующая. Написал операции постфиксной и префиксной декрементации и инкрементации счетчика, который находится в...

Написание классов и методов к ним
Уважаемые программисты, подскажите как пишутся классы для игр и методы. Я сейчас пишу игру танчики. Есть класс базовый класс Объект, от...

Вызов методов классов по указателям
Имеется управляющий класс, в котором определен указатель на функцию: void (Operation*) (); Как передавать по данному указателю...

Оболочка для потков-методов классов
Задача: написать удобную оболочку для реализации многопоточных классов. Пишу: ThreadWrap.h: #ifndef _ThreadWrap_h_ #define...

Вызов методов базового и производного классов
Народ, объясните тупому механику раннего связывания. Вывод программы, что ниже, 22. Хотя если вызывать непосредственно функцию f, будет...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru