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

Конструктор класса не видит конструктор по умолчанию другого класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно ли повторно перекомпилировать код при изменении определение функции http://www.cyberforum.ru/cpp-beginners/thread936351.html
Здравствуйте, прочитав тему Особенность объявления функции , а именно сообщение tzeentch: Допустим, у нас вот такая ситуация: функция a() вызывает функцию b(), а функция b(), в свою очередь, функцию a(). Опишите мне это без предварительного обьявления Потом, h-файлы придумали для ускорения компиляции проектов в доисторические времена, ведь при изменении h-файла надо перекомпилировать все...
C++ Объектно-ориентированный анализ и проектирование с примерами приложений Стоит ли её читать, а то пролистал в середине кодов никаких нет один текст + немного картинок как из газеты? Добавлено через 41 минуту ??? http://www.cyberforum.ru/cpp-beginners/thread936313.html
Мне бы книжку. может кто подскажет? C++
Здрасти... Не хотел лишний раз создавать тему, но ответов на мои вопросы гугл мне вразумительных не дал, а задавать свои вопросы в чужих темах чревато новыми помидорами :tomatos: Сегодня я выяснил, что специализироваться мне нужно на технологиях COM и моделях МТА. Хотелось бы узнать ваше мнение, что из литературы дало бы мне полное и доходчивое объяснение этим технологиям. Ну и в...
ostream_iterator C++
Имеется массив объектов string - result и текстовой файл. При выводе на экран с помощью ostream_iterator<string,char>out(cout,"\n") copy(result.begin(),result.end(),out); на каждой строке находится по объекту string. Но при попытке вывести в файл ofstream res; res.open("1.txt"); copy(result.begin(),result.end(),ostream_iterator<string,char>(res,"\n")); все объекты пишутся слитно. Что не так?
C++ Перевод каретки и ввод данных в консоли http://www.cyberforum.ru/cpp-beginners/thread936292.html
Хотелось бы ввести данные в две строки за один раз... В простейшем случае пример выглядит так: #include <iostream> #include <cstdio> using namespace std; int main() { char kniga, film; cout << "Какой фильм про хоббитов вы знаете?\n";
C++ Перевод каретки и ввод данных в консоли Хотелось бы ввести данные в две строки за один раз... В простейшем случае пример выглядит так: #include <iostream> #include <cstdio> using namespace std; int main() { cout << "Какой фильм про хоббитов вы знаете?\r"; cin >> lotr; //Вводит символы до нажатия Enter подробнее

Показать сообщение отдельно
MayaNash
1285 / 453 / 47
Регистрация: 24.08.2011
Сообщений: 2,203

Конструктор класса не видит конструктор по умолчанию другого класса - C++

10.08.2013, 23:27. Просмотров 760. Ответов 6
Метки (Все метки)

Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть.
Classes.h
C++
1
2
3
4
class Node;
class HeadNode;
class InternalNode;
class TailNode;

Classes.cpp
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
#include "stdafx.h"
#include <iostream>
#include "Classes.h"
using namespace std;
 
class Node
{
public:
    Node() { };
    virtual ~Node() { };
    virtual void Show() = 0;
    virtual Node * Insert(int) = 0;
};
 
class HeadNode: public Node
{
private:
    Node * next;
public:
    HeadNode() { next = new TailNode; };
    ~HeadNode() { next->~Node(); };
    Node * Insert(int theValue) { next = next->Insert(theValue); };
    void Show() { next->Show(); };
};
 
class InternalNode: public Node
{
private:
    Node * next;
    int value;
public:
    InternalNode() { };
    InternalNode(int theValue, Node * theNext): value(theValue), next(theNext) { };
    ~InternalNode() { next->~Node(); };
    Node * Insert(int);
    void Show() { cout << value << " "; };
};
 
Node * InternalNode::Insert(int theValue)
{
    if (theValue <= value)
    {
        Node * newNode = new InternalNode(theValue,this);
        return newNode;
    }
    else
    {
        next = next->Insert(theValue);
        return this;
    }
    return this;
};
 
class TailNode: public Node
{
public:
    TailNode() { };
    ~TailNode() { };
    Node * Insert(int);
    void Show() { };
};
 
Node * TailNode::Insert(int theValue)
{
    Node * newNode = new InternalNode(theValue,this);
    return newNode;
};

Список.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <iostream>
#include "Classes.h"
using namespace std;
 
int main()
{
    HeadNode myList;
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru