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

Не удается в главной программе уладить противоречия с указателями и адресами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создать класс Vektor http://www.cyberforum.ru/cpp-beginners/thread1005144.html
Помогите, не пойму как делать. Разработать класс Vector – геометрический вектор произвольной размерности (размерность задается в конструкторе вектора). Реализовать метод доступа к элементам вектора. Реализовать операции сложения, вычитания и скалярного произведения векторов, а также нахождение модуля вектора.
C++ Функции. Вложенные циклы Добрый вечер! Помогите пожалуйста перевести задачу с C# на С++ Условие: Даны целые числа m, a1... a20. Найти три натуральных числа i, j, k, каждое из которых не превосходит двадцати, такие что ai+aj+ak=m. Если таких чисел нет, сообщить об этом. Код: int fun(int a, int m) { int len = a.Length, i, j, k; http://www.cyberforum.ru/cpp-beginners/thread1005142.html
Сложение массивов C++
Произвести сложение двух массивов 5х3 по правилам сложения матриц.
c++ завершить цикл клавишей <Enter> C++
здраствуйте нужно завершать вложенный цикл клавишей <enter>, весь день просидел так и не осилил, при объекктов getch(), cin.get() завершается при каждом символе. Добавлено через 15 секунд #include <iostream> #include <conio.h> int main () { using namespace std;
C++ Проверьте, пожалуйста. Задание: определить, каким днем недели является 1 января данного года http://www.cyberforum.ru/cpp-beginners/thread1005126.html
Дана задача: Вводится номер года. Определить, каким днем недели является 1 января данного года, если 1 января 1900 года - понедельник (для решения этой задачи заметим, что в случае, когда год невисокосный, 1 января следующего года сдвигается на 1 день недели, а если год високосный -то на 2). P.S Високосный год - это год, который делится на 4, но не делится на 100, либо просто делится на 400....
C++ символьные матрицы в C++ Заменить символом '*' все элементы, расположенные выше побочной диагонали и не являющиеся цифрами. подробнее

Показать сообщение отдельно
Оксана 1234
 Аватар для Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 158
12.11.2013, 01:42     Не удается в главной программе уладить противоречия с указателями и адресами
Доброго времени суток,у меня есть почти готовая программа, но у меня проблемы с указателями и адресами. Все ф-ии вроде написаны правильно, но проблемы в main. Делала, но не доделала.
Описать полиморфные функции, принимающие своим параметрам указатели на интерфейс 2: функции-операции сдвига для потокового ввода / вывода,использующий интерфейс с
преобразованием объекта в строку и наоборот.


1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.c pp(66): error C2243: приведение типов: преобразование "last *" в "interface_2 *" существует, но недоступно
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.c pp(67): error C2243: приведение типов: преобразование "last *" в "interface_2 *" существует, но недоступно
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.c pp(69): error C2664: vvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.c pp(70): error C2664: vuvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.c pp(72): error C2664: vvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"
1>c:\users\оксана\documents\visual studio 2012\projects\consoleapplication1\consoleapplication1\main.c pp(73): error C2664: vuvid: невозможно преобразовать параметр 1 из "interface_2 *" в "interface_2 &"

main
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
76
77
#include "flower.h"
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cctype>
FILE*uf;
 
void vvid (interface_2 &M)
{
    cout << "Enter the name and color of flower:" ;
    char *str_0 = new char[50];
    cin.getline(str_0, 50);
    M.str_ob(str_0);
}
 
void vuvid (interface_2 &M)
{
    cout << "\nVuvid vvedenoho objecta:" << M.ob_str() << endl;
}
 
using namespace std;
int main()
{
last ob_1, ob_2("Hyacinth");
 
    cout << "k-st objectiv: " << ob_1.Get_Count() << endl;
 
    int count= ob_1.Get_Count();
 
    cout << "number of object 1 is " << ob_1.Get_Num() << endl;
    cout << "number of object 2 is " << ob_2.Get_Num() << endl;
 
    interface_1 *A1[2] = {0}; 
 
    A1[0] = &ob_1;                 
    A1[1] = &ob_2;             
 
    interface_1 *Rez= new last() ;
 
    
    for(int i = 0; i < count; i++)
    {
        for( int j = 1; j < count; j++)
        {
            if( A1[j]->Get_Num() < A1[j]->Get_Num())
            {
                Rez = A1[j]; 
                A1[j] = A1[j-1];
                A1[j-1] = Rez;
            }
        }
    }
 
    for(int i=0; i<count; i++)
    {
       
        cout<<A1[i]->Get_Num()<<"\n";
       
    }
 
        cout << "Vuvid objecta 1: " << ob_1.ob_str() << "\nVuvid objecta 2: " << ob_2.ob_str() << endl;
    
        interface_2 *one=&ob_1;
        interface_2 *two=&ob_2;
 
    vvid ( one );
    vuvid (one );
 
    vvid ( two);
    vuvid ( two);
 
        system("pause");
    return 0;
}
flower
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# include <string>
# include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <time.h>
 
using namespace std;
namespace myname
{
    static int count = 0;
}
 
 
class interface_1
{
public:
    virtual int Get_Num() = 0; 
    virtual int Get_Count() = 0;
};
 
 
class interface_2
{
public:
    virtual void str_ob(char *) = 0;
    virtual char* ob_str() = 0;
};
 
 
class flower
{
public:
    int number;
    char *color;
    char *name;
 
    flower()
    {
        number = 6; 
        name = new char[20]; 
        strcpy(name,"Romashka"); 
        color = new char[20]; 
        strcpy(color, "Biluy");
    };
 
    ~flower()
    {cout<<"Robota destructora";
    delete []color;
    delete []name;
    };
 
};
 
class last : public flower, public interface_1, interface_2
{
public:
 
    int num;
    last() : flower(){  num = ++myname::count;  }
    last(char* o) { strcpy(name, o); num = ++myname::count;}
    ~last() { }
    int Get_Count(){ return myname::count;}
    int Get_Num(){ return num;}
 
    //funkcii konvertacii stricku v object
    void str_ob(char *str_0)
    {
        char *pch = strtok (str_0, " ");
        this->name = pch;
        pch = strtok (str_0, " "); 
        this->color = pch;
    }
    //funkcii konvertacii objecta v strichku
    char* ob_str()
    {
        char *str_1 = new char[20];
        strcpy(str_1, this->color);
        char *str_2 = new char[20];
        strcpy(str_2, this->name);
        strcat(str_1," ");
        strcat(str_1,str_2);
        return str_1;
    }
 
    friend ostream& operator <<(ostream& out, last& C)
    {
        return out << "\n\Name = " << C.name ;
    }
 
    last& operator = (last& C)
    {
 
        if(C.name)
        {
            name = new char [strlen(C.name)+1];
            strcpy (name, C.name);
        }
        else name = 0;
 
    };
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru