Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787

Не могу разобратся с ошибкой

16.12.2014, 13:16. Показов 2036. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть такой вот код:
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
#pragma once
 
#include <windows.h>
 
class PerformanceTimer {
public:
    PerformanceTimer(): start_(0), finish_(0) {
        queryFrequency();
        start();
    }
    void start() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        start_=large.QuadPart;
    }
    void finish() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        finish_=large.QuadPart;
    }
    double getSeconds() const {
        return double(finish_-start_)/double(frequency_);
    }
private:
    static queryFrequency() {
        if (frequency_==0) {
            LARGE_INTEGER large;
            QueryPerformanceFrequency(&large);
            frequency_=large.QuadPart;
        }
    }
    static __int64 frequency_;
    __int64 start_;
    __int64 finish_;
};
на 25 строке мне выдает ошибку:
Code
1
C:\Users\****\Test\perf_tim.h|25|error: ISO C++ forbids declaration of 'queryFrequency' with no type [-fpermissive]|
Как ее можно выправить ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2014, 13:16
Ответы с готовыми решениями:

Не могу разобратся с ошибкой в приведенном ниже коде!!!
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;math.h&gt; #pragma hdrstop ...

Не могу разобратся
3. Как изменяется напряжение стабилитрона UСТ когда ток стабилитрона становится ниже 20 мА? 4. Каково значение тока стабилитрона IСТ...

разобратся не могу
Привет всем.Дали курсовую(не мне). Немогу разобратся. Создайте в базе данных под управлением MySQL таблицы Goods, Tags и любые...

18
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.12.2014, 13:21
tdo22, queryFrequency - это функция. А возвращаемое значение у нее не указано. Судя по всему, там нужен void.
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 13:38  [ТС]
DrOffset, не помогает. Ошибка та же
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.12.2014, 13:52
Цитата Сообщение от tdo22 Посмотреть сообщение
не помогает. Ошибка та же
Покажи как сделал.
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2224 / 1426 / 420
Регистрация: 16.05.2013
Сообщений: 3,646
Записей в блоге: 6
16.12.2014, 13:59
Цитата Сообщение от tdo22 Посмотреть сообщение
DrOffset, не помогает. Ошибка та же
А в реализации не забыли возвращаемый тип указать?
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 14:01  [ТС]
Сделал так:
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
#pragma once
 
#include <windows.h>
 
class PerformanceTimer {
public:
    PerformanceTimer(): start_(0), finish_(0) {
        void queryFrequency();
        start();
    }
    void start() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        start_=large.QuadPart;
    }
    void finish() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        finish_=large.QuadPart;
    }
    double getSeconds() const {
        return double(finish_-start_)/double(frequency_);
    }
private:
    static void queryFrequency() {
        if (frequency_==0) {
            LARGE_INTEGER large;
            QueryPerformanceFrequency(&large);
            frequency_=large.QuadPart;
        }
    }
    static __int64 frequency_;
    __int64 start_;
    __int64 finish_;
};
Добавлено через 18 секунд
но ошибка осталась
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.12.2014, 14:03
Цитата Сообщение от tdo22 Посмотреть сообщение
C++
1
2
3
4
PerformanceTimer(): start_(0), finish_(0) 
{ 
    void queryFrequency();
.......
А здесь-то зачем void добавил?
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 14:06  [ТС]
Забыл за него)
С ним или без него, ошибка остается
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.12.2014, 14:21
Цитата Сообщение от tdo22 Посмотреть сообщение
С ним или без него, ошибка остается
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
class PerformanceTimer {
public:
    PerformanceTimer(): start_(0), finish_(0) {
        queryFrequency();
        start();
    }
    void start() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        start_=large.QuadPart;
    }
    void finish() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        finish_=large.QuadPart;
    }
    double getSeconds() const {
        return double(finish_-start_)/double(frequency_);
    }
private:
    static void queryFrequency() {
        if (frequency_==0) {
            LARGE_INTEGER large;
            QueryPerformanceFrequency(&large);
            frequency_=large.QuadPart;
        }
    }
    static __int64 frequency_;
    __int64 start_;
    __int64 finish_;
};
Т.е. вот так у тебя не работает? И выдает ошибку "ISO C++ forbids declaration of 'queryFrequency' with no type"?
Все верно? Если да, то ты уверен, что именно этот код компилируешь? Потому что тут ошибок нет.
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 14:30  [ТС]
Перезапустил Code::Blocks и ошибка пропала.
Но теперь появилась следующая:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    if (it!=str.end())
    {
        switch (*it)
        {
        case 'm':
            num<<=10;
        case 'k':
            num<<=10;
            break;
        }
    }
    return num;
на первой строке ошибка:
C:\Users\*****\C++ Test\BWT\main.cpp|471|error: name lookup of 'it' changed for ISO 'for' scoping [-fpermissive]
C:\Users\*****\C++ Test\BWT\main.cpp|471|note: (if you use '-fpermissive' G++ will accept your code)|
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.12.2014, 14:34
Цитата Сообщение от tdo22 Посмотреть сообщение
name lookup of 'it' changed for ISO 'for' scoping
Что же ты так кода-то жалеешь. Показывай вместе с циклом
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 14:48  [ТС]
Весь блок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
inline unsigned readSize(const std::string &str)
{
    unsigned num=0;
    for (std::string::const_iterator it=str.begin();it!=str.end()&&'0'<=*it&&*it<='9';++it)
    {
        num*=10;
        num+=*it-'0';
    }
    if (it!=str.end())
    {
        switch (*it)
        {
        case 'm':
            num<<=10;
        case 'k':
            num<<=10;
            break;
        }
    }
    return num;
}
Добавлено через 31 секунду
Полный код имеет 628 строк, если надо будет, выложу файл
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 15:00  [ТС]
вот весь проект:
BWT.rar
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
16.12.2014, 15:01
Ну нормальным английским языком же написано:

C++
1
for (std::string::const_iterator it=str.begin();it!=str.end()&&'0'<=*it&&*it<='9';++it)
it не существует вне тела цикла, перенеси объявление выше for.
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 15:14  [ТС]
Сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
inline unsigned readSize(const std::string &str)
{
    unsigned num=0;
    string::const_iterator it=str.begin();
    for (; it!=str.end()&&'0'<=*it&&*it<='9';++it)
    {
        num*=10;
        num+=*it-'0';
    }
    if (it != str.end())
    {
        switch (*it)
        {
        case 'm':
            num<<=10;
        case 'k':
            num<<=10;
            break;
        }
    }
 
    return num;
}
Добавлено через 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
#pragma once
 
#include <windows.h>
 
class PerformanceTimer {
public:
    PerformanceTimer(): start_(0), finish_(0) {
        queryFrequency();
        start();
    }
    void start() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        start_=large.QuadPart;
    }
    void finish() {
        LARGE_INTEGER large;
        QueryPerformanceCounter(&large);
        finish_=large.QuadPart;
    }
    double getSeconds() const {
        return double(finish_-start_)/double(frequency_);
    }
private:
    static queryFrequency() {
        if (frequency_==0) {
            LARGE_INTEGER large;
            QueryPerformanceFrequency(&large);
            frequency_=large.QuadPart;
        }
    }
    static __int64 frequency_;
    __int64 start_;
    __int64 finish_;
};
Ошибка на 22, 26, 29 строках
Code
1
2
obj\Debug\main.o||In function `ZNK16PerformanceTimer10getSecondsEv':|
C:\Users\*****C++ Test\BWT\perf_tim.h|22|undefined reference to `PerformanceTimer::frequency_'|
0
Заблокирован
16.12.2014, 15:22
Цитата Сообщение от tdo22 Посмотреть сообщение
C:\Users\*****\C++ Test\BWT\main.cpp|471|error: name lookup of 'it' changed for ISO 'for' scoping [-fpermissive]
C:\Users\*****\C++ Test\BWT\main.cpp|471|note: (if you use '-fpermissive' G++ will accept your code)|
у меня почему-то нет такого
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 15:33  [ТС]
какой компилятор ?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
16.12.2014, 15:47
Лучший ответ Сообщение было отмечено tdo22 как решение

Решение

tdo22,
В cpp (perf_tim.cpp) к этому h-файлу (perf_tim.h) добавь вот это:
C++
1
__int64 PerformanceTimer::frequency_ = 0;
1
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
16.12.2014, 16:23  [ТС]
все работает. Спасибо!
Но теперь, может кто подскажет как этой программой пользоваться ?
Я так понимаю ей нужно передать строку параметром при запуске, верно ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2014, 16:23
Помогаю со студенческими работами здесь

Не могу разобратся
Всем привет. Мне стало интересно, как можно реализовать проверку авторизации пользователя в админ панель. Нужно чтоб PHP скрипт...

Не могу разобратся
Прога работающий аксес базами, не хочет работать в клиентским машине... Поняти не имею..Предлагайте, пожалуйста, варианты, что может быт...

Не могу разобратся с формулой
Нужно определить является ли точка с координатами х,у точкой пересечения диагоналей квадрата,сторона которого равна Z одна вершина которого...

Не могу разобратся с эффектами
Всем привет!!! Пишу код для загрузки и отрисовки эффектов,и столкнулся с проблемой,после компиляции окно игры зависает и я не могу закрыть...

Не могу разобратся с кодами!!!
Привет Всем!!! Я недавно начал заниматся программированием начал с Borland Delphi 2005 нашел к нему видео обучалку я понял как создать...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru