Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
#1

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

06.03.2013, 18:51. Просмотров 325. Ответов 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 18:51     Связь классов и методов
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
06.03.2013, 18:56     Связь классов и методов #2
ты не создаёшь объект TMessage, а просто объявляешь указатель
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
06.03.2013, 19:00     Связь классов и методов #3
Кстати говоря, а это в студии писалось? Судя по stdafx - в студии. Оная у меня лишь на strcpy выругалась.

Да, и саму ошибку пожалуйста)
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
06.03.2013, 19:07     Связь классов и методов #4
Цитата Сообщение от 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();
}
lpvoid
322 / 305 / 17
Регистрация: 06.03.2013
Сообщений: 869
06.03.2013, 19:08     Связь классов и методов #5
О, дурень я! И ведь действительно)
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
06.03.2013, 19:29  [ТС]     Связь классов и методов #6
спасибо
но вот ещё,у меня ругается именно вот здесь
C++
1
TMessage* TTopic::AddMessage(char* topic,char* author,char* text)
подчеркивает AddMessage

Добавлено через 4 минуты
я когда по модулям расписываю у меня ошибка,а если нет то нет её
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
06.03.2013, 19:34     Связь классов и методов #7
компилятор чего пишет?
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
06.03.2013, 21:25  [ТС]     Связь классов и методов #8
error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
06.03.2013, 21:34     Связь классов и методов #9
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, работает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2013, 22:29     Связь классов и методов
Еще ссылки по теме:

Реализ иерархии классов и соответствующих им методов! - C++
Привет всем! Срочно нужна помощь в написании программы! Необходимо реализовать иерархию таких классов, как Точка - Единичный вектор -...

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

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

Хранение экземпляров классов-наследников, и вызов их методов - C++
Столкнулся с проблемой. Есть класс-родитель и 2 класса-наследника. class Base { public: void baseFunc(); }; class...


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

Или воспользуйтесь поиском по форуму:
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
06.03.2013, 22:29  [ТС]     Связь классов и методов #10
ладно спасибо,потом разберусь
Yandex
Объявления
06.03.2013, 22:29     Связь классов и методов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru