Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Пароль https://www.cyberforum.ru/ cpp-beginners/ thread376719.html
Всем доброго времени суток! У меня появилась такая проблема с организованием пароля:). Есть гланая форма, на которой расположен компонент MainMenu. При нажатии кнопки мыши на один из подразделов, необходимо организовать пароль. Для этого я вставила в проект новую форму, НО! Появление формы для ввода пароля должно выводиться до тех пор пока пользователь первый раз не наберет его правильно, а...
C++ Очередь из разнитипных элементов
Помогите пожалуйста, задаче не хочет выводить метод speek(). Ошибка у меня в int main()после того как я объявила указатель на очередь /* Создать очередь из разнотипных элементов-животных, образованных от одного базового класса Animal. Испольpовать замещение метода Speek() в каждом подклассе. Продемонстрировать работу очереди в main. */ #include<iostream> #include<math.h> using...
C++ хочу написать прогу не знаю как Хочу написать программу которая При изменении цвета(например серого на желтый) на определенном пикселе или Группе пикселей(участке монитора), например загорания некой лампочки, нажимала определенную клавишу(например "4"). желательно чтоб координаты участка(пикселя) я мог задавать в ручную и клавишу тоже. подскажите как реализовать. Меня в основном интересует то как считывать информацию с экрана,... https://www.cyberforum.ru/ cpp-beginners/ thread376706.html C++ Задание(( даже незнаю с чего начать... https://www.cyberforum.ru/ cpp-beginners/ thread376693.html
Программы реализуются как ассемблерные вставки в языке высшего уровня (Паскаль, С++ и т.д.). Заданы два числа <16. Найти их произведение и с помощью битовых операций записать оба множителя и их произведение одно за другим в ячейку памяти размером в два байта без пропуска битов. Две свои программы написал на C++ Builder 6 summa(Aij * X) + summa(Bi * Y) и (A * X + B) div (C * X2 + D * X +...
C++ Анимация в С++
Уважаемые, программисты! кто может сделать анимацию в программе С++, рисунок можно самый простой лижбо он был в движение. Зарание огромное спасибо! Добавлено через 34 минуты Помогите пожалуйстааааааааааааааааааа
C++ По количеству делителей числа определить само число Название темы говорит само за себя, а теперь подробнее: По заданному количеству делителей числа требуется найти само это число. Входные данные Во входном файле INPUT.TXT записано количество делителей D некоторого натурального числа N (1 <= D <= 5000). Выходные данные В выходной файл OUTPUT.TXT запишите число N. Если решений несколько, выведите наименьшее из них. Если решения нет,... https://www.cyberforum.ru/ cpp-beginners/ thread376678.html
C++ как в с++ создается типизированный файл? и как вообще понять типизированный? https://www.cyberforum.ru/ cpp-beginners/ thread376677.html
вопрос в теме
C++ дана целочисленная прямо угольная матрица
1) задача Дана цедочисленная прямоугольная матрица определить: найти номер первой из строк, содержащих хотябы один положительный элемент размер массива 5х5 замолнить случайными числами. 2) задача В одномерном массиве, состоящем из 10 целых элементов вычислить 1) номер максимального по модулю элемента 2)Сумму элементов массива, расположенных после первого положительного элемента ...
C++ В чем разница между простым линейным списком, и динамическим линейным списком? https://www.cyberforum.ru/ cpp-beginners/ thread376641.html
вопрос в теме
C++ Двоеточие в конструкторе, что это? Пример - конкретно из книги дейтела, вопрос вызывает двоеточие после конструктора, если оно позвляет производить инициализацию - то почему не делать бы этого в теле. Было бы очень хорошо если бы кто-нибудь ткнул носом в мануал по возможным вариантам использования этой вундервафли. String::String( const char *s):length( ( s != 0) ? strlen(2) : 0){/*...*/} Поиском по форуму не нашел, если было... https://www.cyberforum.ru/ cpp-beginners/ thread376638.html
C++ проверьте правильность программ
Нужно составить программу который подсчитывает площадь прямоугольного треугольника когда известна длина и высота: { Float a, h, s; Printf (“vvedite dlinu I visotu: ”); Scanf (“%f %f”, &a, &h); S=(1.0/2.0)*a*h Printf (“ploshad= %f”, s); Return 0; }
C++ Определить количество нечетных членов последовательности, имеющих четные номера Даны натуральные числа n, а1,......,аn. Определить количество членов ак последовательности а1,......,аn : имеющих четные порядковые номера и являющихся нечетными числами. https://www.cyberforum.ru/ cpp-beginners/ thread376620.html
Заблокирован
02.11.2011, 19:36 0

Ошибка С2079 - C++ - Ответ 2130491

02.11.2011, 19:36. Показов 3771. Ответов 1
Метки (Все метки)

Ответ

Цитата Сообщение от kuroiryuu Посмотреть сообщение
имеется описание классов в h-файле
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
#include <map>
#include <set>
 
class Node;
class EdgeToNode;
class AdjacencyList;
 
typedef std::set<EdgeToNode> EdgesList;
typedef std::map<size_t, Node> NodesList;
 
class Node
{
public:
    Node(Node & node);
    Node(size_t key, std::wstring name) : key_(key), name_(name) {}
    ~Node();
    void AddDirected(Node node);
    void AddDirected(Node node, double cost);
    void AddDirected(EdgeToNode* edge);
    bool HasNeighbor(size_t key);
 
    inline size_t GetKey() const { return key_; }
    inline std::wstring GetName() const { return name_; }
private:
    size_t key_;
    std::wstring name_;
    AdjacencyList neighbors_; //ОШИБКА C2079!!!
};
 
class EdgeToNode
{
public:
    EdgeToNode(Node neighbor) : neighbor_(neighbor), cost_(1.0) {}
    EdgeToNode(Node neighbor, double cost) : neighbor_(neighbor), cost_(cost) {}
 
    inline double Cost() {return cost_;}
    inline Node Neighbor() const {return neighbor_;} //ОШИБКА C2558!!!
private:
    double cost_;
    Node neighbor_;
};
 
class AdjacencyList
{
public:
    virtual void Add(EdgeToNode e);
    virtual bool Contains(Node node);
    virtual bool Contains(EdgeToNode edge);
    inline EdgesList::iterator GetBeginEdge() {return list_.begin();}
    inline EdgesList::iterator GetEndEdge() {return list_.end();}
private:
    EdgesList list_;
};
при компиляции вылазит две ошибки
error C2558: class 'Node' : no copy constructor available or copy constructor is declared 'explicit'
error C2079: 'Node::neighbors_' uses undefined class 'AdjacencyList'

подскажите как бороться с этими ошибками?

по C2079 пробовал описать переменную Node::neighbors_ как
C++
1
AdjacencyList* neighbors_;
ошибка исчезла, но такое использование указателя не самый лучший способ, хотелось бы узнать как правильно в данной ситуации применить std::auto_prt<AdjacencyList>
У вас возникает ошибка потому, что в классе Node, когда вы определяете член класса AdjacencyList neighbors_;, компилятору не известно определение этого типа, то есть AdjacencyList Вы лишь предварительно объявили этот класс, но не определили, а компилятору, чтобы правильно определить класс Node, нужно знать размер класса AdjacencyList . То есть в этом месте тип AdjacencyList является неполным типом: компилятор не имеет информации о его размере. Когда же вы это поле заменили указателем, то компилятору не нужно само строение класса AdjacencyList , так как размер указателя компилятору в любом случае известен.

Во-втором случае при объявлении функции

C++
1
inline Node Neighbor() const {return neighbor_;}
проблема заключается в том, что в классе Node вы объявили конструктор копирования следующим образом

C#
1
Node(Node & node);
то есть вы передаете не константную ссылку в качестве аргумента. А на временные объекты можно ссылаться только по константной ссылке. То есть компилятор не нашел подходящего конструктора копирования и выдал сообщение об ошибке.

То есть чтобы было понятно, ваша функция

C++
1
inline Node Neighbor() const {return neighbor_;}
в качестве возвращаемого значения создает временный объект Node, а соответствующий конструктор копирования вида

C#
1
Node(const Node & node);
отсутствует!

Вернуться к обсуждению:
Ошибка С2079 C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2011, 19:36
Готовые ответы и решения:

с2079 и с2228 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ bool game = true; // КЛАССЫ class Me; class mob { public: void...

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error).
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после...

1
02.11.2011, 19:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2011, 19:36
Помогаю со студенческими работами здесь

Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл на работу а сервак...

Django Ошибка доступа (403) Ошибка проверки CSRF. Запрос отклонён
На хостинге разместил сайт и не могу войти в админку, т.к. возникает 403 ошибка &quot;Ошибка доступа...

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера'
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect 'page1.asp?ReturnTo=page2.asp' ...

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты.
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim myMail Set myMail =...

Ошибка CL.exe завершилась с кодом 2 Что это за ошибка и как исправить?
Ошибка появилась, но не могу понять как ее исправить. #include &lt;iostream&gt; using namespace...

Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка
В Combobox загружены имена организаций. Нужно выполнить запрос на вывод всех полей таблицы...

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