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

Как обраиться к структуре в классе? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двоичное дерево http://www.cyberforum.ru/cpp-beginners/thread271734.html
Помогите пожалуйста построить двоичное дерево и найти в нём длину пути(количество ветвей от корня) до минимального элемента
C++ Двунаправленный список Помогите написать курсовой по теме "Спортивные товары" Добавлено через 4 минуты Или выложите пожалуйста хотябы примеры задач с двунаправленным кольцом, Заранее Спасибо http://www.cyberforum.ru/cpp-beginners/thread271723.html
C++ Вывод изображений на монитор
Подучил немного C++,написал простенькую программу для расчёта размеров деталей окошек в цех,возникла проблема.В учебниках для начинающих вскользь упоминается о работе с файлами и ни слова о выводе на монитор изображений,растровых или векторных.В гугле я нашёл только статьи по графическому редактору в Borland c++.Подскажите что можно почитать по этой теме для начинающих,у меня есть ядро...
C++ Создать класс, в котором есть переменные-члены и одномерный массив. Инициализировать элементы массива случайными числами через внутренний указатель кл
Помогите пожалуста(С++) Создать класс, в котором есть переменные-члены и одномерный массив. Инициализировать элементы массива случайными числами через внутренний указатель класса this.
C++ Инверсия http://www.cyberforum.ru/cpp-beginners/thread271714.html
Всем привет ! как это можно реализовать ? В массиве А инвертировать те его части, которые идут по возрастанию. на входе - 3 3 4 5 4 2 1 0 3 1 на выходе - 3 5 4 3 4 2 1 3 0 1
C++ Двухнаправленные списки Постановка задач такова: Нужно разработать базу с двунаправленным кольцом, Название программы "спортивные товары" Можете хоть примерно написать начало задачи, потому что я в этом вообще не соображаю, Зарание Спасибо) подробнее

Показать сообщение отдельно
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 182

Как обраиться к структуре в классе? - C++

07.04.2011, 13:30. Просмотров 765. Ответов 11
Метки (Все метки)

как обраиться к структуре в классе.
к указателю и массиву.
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
#include <iostream>
using namespace std;
 
    class cd
{
 
    private:
    char *performers;
    char *label;
    int selections;
    double playtime;
 
    public:
    struct st1
    {
        double * dpoint;
        int mass1[10];
    };
    cd();
    cd(char *s1, char *s2, double x);
    cd(const cd &obj);
    ~cd();
    cd& operator=(const cd &obj);
    friend ostream& operator<<(ostream &os, const cd &obj);
 
    void report()const;
};
 
    class classic : public cd
{
    private:
    char idenf[20];
 
    public:
    classic(char *id, char *s1, char *s2, double x);
    classic(char *id, const cd &cdobj1);
};
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
using namespace std;
 
    cd::cd()
{
    cout << "Default cd constructor\n";
    performers = new char;
    performers[0] = '\0';
    label = new char;
    label[0] = '\0';
    st1.dpoint = new double;
    *st1.dpoint = 0;
    st1.mass1[0] = 0;
    selections = 0;
    playtime = 0;
}
 
    cd::cd(char *s1, char *s2, double x)
{
    cout << "Cd constructor with parameters\n";
    performers = new char [strlen(s1)+1];
    strcpy(performers, s1);
    label = new char[strlen(s2)+1];
    strcpy(label, s2);
    selections = 0;
    playtime = x;
}
    cd::cd(const cd &obj)
{
    cout << "Cd copy constructor\n";
    performers = new char [strlen(obj.performers)+1];
    strcpy(performers, obj.performers);
    label = new char [strlen(obj.label)+1];
    strcpy(label, obj.label);
    selections = obj.selections;
    playtime = obj.playtime;
}
    cd& cd::operator=(const cd &obj)
{
    cout << "Cd operator =\n";
    if(this==&obj)
        return *this;
    delete performers;
    performers = new char [strlen(obj.performers)+1];
    strcpy(performers, obj.performers);
    delete label;
    label = new char [strlen(obj.label)+1];
    strcpy(label, obj.label);
    selections = obj.selections;
    playtime = obj.playtime;
    return *this;
}
    cd::~cd()
{
    cout << "Cd destructor\n";
    delete performers;
    delete label;
}
 
    ostream& operator<<(ostream &os, const cd &obj)
{
    os << "\n";
    return os;
}
    void cd::report()const
{
    cout << performers << "\n";
    cout << label << "\n";
    cout << playtime << "\n";
}
 
    void func1(const cd obj)
{
    obj.report();
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdafx.h>
#include <iostream>
#include "incl.h"
#include "project161.cpp"
 
using namespace std;
 
    int main()
{   cd cdobj2;
    cd cdobj1("Name unknown", "Label unknown", 15.4);
    cdobj1.report();
    cdobj2 = cdobj1;
    cdobj2.report();
    func1(cdobj1);
    return 0;
}
1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\project161.cpp(11) : error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\project161.cpp(11) : error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\project161.cpp(12) : warning C4832: лексема '.' недопустима после UDT 'cd::st1'
1> c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\incl.h(15): см. объявление 'cd::st1'
1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\project161.cpp(12) : error C2275: cd::st1: недопустимое использование этого типа в качестве выражения
1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\project161.cpp(13) : error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project16\project16\project161.cpp(13) : error C2143: синтаксическая ошибка: отсутствие ";" перед "."
1>Журнал построения был сохранен в "file://c:\Documents and Settings\er\Мои документы\Visual Studio 2008\Projects\project16\project16\Debug\BuildLog.htm"
1>project16 - ошибок 5, предупреждений 1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru