Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
2 / 2 / 1
Регистрация: 26.06.2015
Сообщений: 56

Ошибка C3646

16.02.2016, 21:52. Показов 5297. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему компилятор выдает ошибки (в строке 7 и ниже аналогично):
error C3646: 'window': unknown override specifier
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "Window.h"
#include "Buttons.h"
#include "Field.h"
 
class WindowVector
{
    Window window;
    CloseButton closebutton;
    CheckButton checkbutton;
    Field field;
public:
    WindowVector();
};
Window, CloseButton, CheckButton, Field - это классы, в которых есть friend WindowVector;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2016, 21:52
Ответы с готовыми решениями:

Ошибка C3646 str: неизвестный спецификатор переопределения
class xxx :public yyy { public: string str; int r; xxx(int r=0); void get(); void set(int r); }; подчеркивает строку...

Найти причины и способы исправления ошибок: C3646 и C4430
Всем, привет. Попробовал написать консольную игрушку. В этом деле я ещё новичок и у меня возникают различные проблемы, но по этой я...

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

9
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.02.2016, 22:29
Покажи, что в инклудах.
0
2 / 2 / 1
Регистрация: 26.06.2015
Сообщений: 56
16.02.2016, 22:46  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
 
#include <iostream>
#include <string>
 
using namespace std;
 
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
 
class Square
{
protected:
    string text;    int x;
    int y;
    int width;
    int height;
public:
    virtual void Print() = 0;
};
Добавлено через 2 минуты
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
102
#pragma once
 
#include <Windows.h>
#include "Square.h"
#include "WindowVector.h"
 
class WindowVector;
 
class Window : public Square
{
public:
    Window(int, int, int);
    Window(const Window&);
    Window& operator=(const Window&);
    void change(int, int, int);
    void Delete();
    void Print();
    friend WindowVector;
};
 
Window::Window(int x, int y, int count)
{
    text = "New window";
    text += ' ';
    text += (count + '0'); // преобразовываем int в char
    this->x = x;
    this->y = y;
    width = 30;
    height = 11;
}
 
Window::Window(const Window &obj)
{
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
}
 
Window& Window::operator=(const Window &obj)
{
    if (this == &obj)
        return *this;
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
    return *this;
}
 
void Window::change(int x, int y, int count)
{
    text = "New window";
    text += ' ';
    text += (count + '0');
    this->x = x;
    this->y = y;
    width = 30;
    height = 11;
}
 
void Window::Delete()
{
    this->~Window();
}
 
void Window::Print()
{
    COORD c = { x, y };
    DWORD d;
 
    SetConsoleCursorPosition(hOut, c);
    SetConsoleTextAttribute(hOut, 0x17);
    for (int i = 0; i <= width; ++i)
    {
        if (i == width)
            cout << 'X';
        else if (i < text.size())
            cout << text[i];
        else
            cout << ' ';
    }
    SetConsoleTextAttribute(hOut, 0x88);
    for (int i = 1; i <= height; ++i)
    {
        c.X = x;
        c.Y = y + i;
 
        FillConsoleOutputAttribute(hOut, 0xff, width + 1, c, &d);
        FillConsoleOutputCharacter(hOut, ' ', width + 1, c, &d);
        c.X = x + width + 1;
        SetConsoleCursorPosition(hOut, c);
        cout << ' ';
    }
    c.X = x + 1;
    c.Y = y + height + 1;
    FillConsoleOutputAttribute(hOut, 0x80, width + 1, c, &d);
    FillConsoleOutputCharacter(hOut, ' ', width + 1, c, &d);
    SetConsoleTextAttribute(hOut, 0x0);
}
Добавлено через 21 секунду
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#pragma once
 
#include <Windows.h>
#include "Square.h"
#include "WindowVector.h"
 
class WindowVector;
 
class CloseButton : public Square
{
public:
    CloseButton();
    CloseButton(string, int, int, int, int);
    CloseButton(const CloseButton&);
    CloseButton& operator=(const CloseButton&);
    void Delete();
    void Print();
    friend WindowVector;
};
 
CloseButton::CloseButton()
{
    text = "CLOSE";
    x = 0 + 19;
    y = 0 + 9;
    width = 6;
    height = 3;
}
 
CloseButton::CloseButton(string header, int x, int y, int width, int height)
{
    text = header;
    this->x = x;
    this->y = y;
    this->width = width;
    this->height = height;
}
 
CloseButton::CloseButton(const CloseButton &obj)
{
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
}
 
CloseButton& CloseButton::operator=(const CloseButton &obj)
{
    if (this == &obj)
        return *this;
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
    return *this;
}
 
void CloseButton::Delete()
{
    this->~CloseButton();
}
 
void CloseButton::Print()
{
    COORD c = { x, y };
 
    SetConsoleCursorPosition(hOut, c);
    SetConsoleTextAttribute(hOut, 0x80);
    for (int i = 0; i <= width; ++i)
    {
        if (i == 0)
            cout << ' ';
        else if (i <= text.size())
            cout << text[i - 1];
        else
            cout << ' ';
    }
    SetConsoleTextAttribute(hOut, 0x0); 
}
 
class CheckButton : public Square
{
public:
    CheckButton();
    CheckButton(string, int, int, int, int);
    CheckButton(const CheckButton&);
    CheckButton& operator=(const CheckButton&);
    void Delete();
    void Print();
    friend WindowVector;
};
 
CheckButton::CheckButton()
{
    text = "CHECK";
    x = 0 + 4;
    y = 0 + 9;
    width = 6;
    height = 3;
}
 
CheckButton::CheckButton(string header, int x, int y, int width, int height)
{
    text = header;
    this->x = x;
    this->y = y;
    this->width = width;
    this->height = height;
}
 
CheckButton::CheckButton(const CheckButton &obj)
{
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
}
 
CheckButton& CheckButton::operator=(const CheckButton &obj)
{
    if (this == &obj)
        return *this;
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
    return *this;
}
 
void CheckButton::Delete()
{
    this->~CheckButton();
}
 
void CheckButton::Print()
{
    COORD c = { x, y };
 
    SetConsoleCursorPosition(hOut, c);
    SetConsoleTextAttribute(hOut, 0x80);
    for (int i = 0; i <= width; ++i)
    {
        if (i == 0)
            cout << ' ';
        else if (i <= text.size())
            cout << text[i - 1];
        else
            cout << ' ';
    }
    SetConsoleTextAttribute(hOut, 0x0);
}
Добавлено через 16 секунд
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
#pragma once
 
#include <Windows.h>
#include "Square.h"
#include "WindowVector.h"
 
class WindowVector;
 
class Field : public Square
{
public:
    Field();
    Field(string, int, int, int, int);
    Field(const Field&);
    Field& operator=(const Field&);
    void Delete();
    void Print();
    friend WindowVector;
};
 
Field::Field()
{
    text.clear();
    x = 0 + 2;
    y = 0 + 2;
    width = 28;
    height = 5;
}
 
Field::Field(string header, int x, int y, int width, int height)
{
    text = header;
    this->x = x;
    this->y = y;
    this->width = width;
    this->height = height;
}
 
Field::Field(const Field &obj)
{
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
}
 
Field& Field::operator=(const Field &obj)
{
    if (this == &obj)
        return *this;
    text = obj.text;
    x = obj.x;
    y = obj.y;
    width = obj.width;
    height = obj.height;
    return *this;
}
 
void Field::Delete()
{
    this->~Field();
}
 
void Field::Print()
{
    COORD c = { x, y };
    DWORD d;
 
    SetConsoleCursorPosition(hOut, c);
    SetConsoleTextAttribute(hOut, 0x99);
    for (int i = 0; i <= height; ++i)
    {
        c.X = x;
        c.Y = y + i;
        FillConsoleOutputAttribute(hOut, 0x99, width - 1, c, &d);
        FillConsoleOutputCharacter(hOut, ' ', width - 1, c, &d);
        cout << ' ';
    }
    SetConsoleTextAttribute(hOut, 0x0);
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.02.2016, 22:52
Лучший ответ Сообщение было отмечено petuz как решение

Решение

Это у тебя .h файлы? Кто же в них реализации делает?

Добавлено через 6 минут
Цитата Сообщение от petuz Посмотреть сообщение
#include "WindowVector.h"
class WindowVector;
И то, и то, зачем?
1
2 / 2 / 1
Регистрация: 26.06.2015
Сообщений: 56
16.02.2016, 22:53  [ТС]
А что, нельзя? Я думал позже вынести..
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.02.2016, 22:54
В хедере, с классом Window, не нужен #include <Windows.h>.
0
2 / 2 / 1
Регистрация: 26.06.2015
Сообщений: 56
16.02.2016, 22:55  [ТС]
Это для "рисования" в консоли библиотека...
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.02.2016, 23:06
Цитата Сообщение от petuz Посмотреть сообщение
А что, нельзя?
Лишнее.
Реализации функций классов убери из хедеров.

Добавлено через 1 минуту
Цитата Сообщение от petuz Посмотреть сообщение
Это для консоли...
Извини, спутал с твоим классом.

Добавлено через 9 минут
Поубирай везде, где без него можно обойтись: #include "WindowVector.h"
1
2 / 2 / 1
Регистрация: 26.06.2015
Сообщений: 56
16.02.2016, 23:10  [ТС]
вроде заработало пока, спасибо.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
16.02.2016, 23:20
Цитата Сообщение от petuz Посмотреть сообщение
вроде заработало пока
Вот это лучше сделать:
Цитата Сообщение от nd2 Посмотреть сообщение
Реализации функций классов убери из хедеров.
Если подключишь их ещё к какому-нибудь .cpp, компоновщик ошибки выдаст.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.02.2016, 23:20
Помогаю со студенческими работами здесь

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

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

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать)
1C 8.2 Документооборот КОРП 1.2 Текст ошибки {ОбщийМодуль.АвтозаполнениеШаблоновФайловКлиентСервер.Модуль(616)}: Ошибка при вызове...

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru