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

Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) - C++

Восстановить пароль Регистрация
 
lexus_ilia
 Аватар для lexus_ilia
3045 / 920 / 35
Регистрация: 24.09.2008
Сообщений: 1,530
21.05.2013, 23:54     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #1
День добрый всем.
Вот я тут нарвался на тестирование по C++. И попалось мне в этом тесте одно задание, которое я никак не могу понять, не могли бы вы помочь с разъяснением. Windows 7, VS 2011.

Есть следующий код

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
int _tmain(int argc, _TCHAR* argv[])
{
    typedef float(*n)();
    goto nam;
nam:
    struct nam
    {
        int nam;
        float nam;
    } nam;
    union nam
    {
        int nam;
        float f;
    } f;
    class f
    {
        int nam;
        long f;
    } nam;
 
    enum Nm
    {
        val1,
        val2,
        f
    } n;
    return 0;
}
Нужно указать в каких строчках есть ошибка. Я конечно все это вбил в среде разработки, увидел все ошибки. И не могу понять один из типов ошибок:
error C2461: wmain::nam: отсутствие в синтаксисе конструктора формальных параметров
и ругается на строчку, где идет определение параметров в структуре, на int nam; и на float nam; 17 и 18 строчки соответственно. Вот я и не могу понять, почему для компилятора это ошибка. Подскажите советом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 23:54     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка)
Посмотрите здесь:

Определить, есть ли в строке(string) хотя бы одно число и определить есть ли в тексте хотя бы два числа. C++
Структуры данных. Написать программу, позволяющую определить, есть ли в школе в каких-либо классах однофамильцы C++
C++ Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль
C++ Какие методы есть в C++ для работы с файлами и в каких случаях какой лучше применять
C++ Определить, есть ли в последовательности хотя бы одно число, кратное 7
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.05.2013, 00:01     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #2
lexus_ilia, тут нужно все разбить на части

C++
1
typedef float(*n)();
C++
1
2
goto nam;
nam:
C++
1
2
3
4
5
struct nam
    {
        int nam;
        float nam;
    } nam;
C++
1
2
3
4
5
union nam
    {
        int nam;
        float f;
    } f;
C++
1
2
3
4
5
class f
    {
        int nam;
        long f;
    } nam;
C++
1
2
3
4
5
6
enum Nm
    {
        val1,
        val2,
        f
    } n;
lexus_ilia
 Аватар для lexus_ilia
3045 / 920 / 35
Регистрация: 24.09.2008
Сообщений: 1,530
22.05.2013, 00:01  [ТС]     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #3
Цитата Сообщение от lexus_ilia Посмотреть сообщение
17 и 18 строчки соответственно
Строчки 7 и 8, конечно же.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.05.2013, 00:04     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #4
lexus_ilia, первое я так понимаю попутка создание синонима указателя на функцию которая возвращает
float и и в качестве аргумента ничего не принимает. Второе часть оператора goto, третье - определение структуры nam и переменной такого же имени что выдает ошибку конечно, четвертое - объединение, пятое класс, шестое - перечисление, теперь ищите ошибки.
lexus_ilia
 Аватар для lexus_ilia
3045 / 920 / 35
Регистрация: 24.09.2008
Сообщений: 1,530
22.05.2013, 00:08  [ТС]     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #5
Не, погодите. Я понимаю все ошибки, кроме той, которая описана в 8 и 9-ой строках соответственно. Вопрос мой такой: "Почему компилятор ругается на эти строки (7,8), что в них не так?"
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.05.2013, 00:10     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #6
lexus_ilia, а вы посмотрите на название переменных? ничего нет странного?
lexus_ilia
 Аватар для lexus_ilia
3045 / 920 / 35
Регистрация: 24.09.2008
Сообщений: 1,530
22.05.2013, 00:14  [ТС]     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #7
В структуре переменные объявлены также как и название структуры и также как и декларация этой стурктуры. Я не знаю правил, по поводу стурктур, можно ли называть переменный также как и саму структуру? Если нет, то укажите источник где это написано. MSDN не рассказывает про это http://msdn.microsoft.com/en-us/library/64973255.aspx
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.05.2013, 00:17     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #8
lexus_ilia, error C2380: типы перед "nam" (конструктор с возвращаемым типом или недопустимое переопределение текущего имени класса
lexus_ilia
 Аватар для lexus_ilia
3045 / 920 / 35
Регистрация: 24.09.2008
Сообщений: 1,530
22.05.2013, 00:19  [ТС]     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #9
Да, спасибо. Я нашел ответ вот тут: http://msdn.microsoft.com/en-us/library/ak13cdwh.aspx написано, что нельзя использовать название переменных такое же как и название класса (читай структуре), правила теже. Разобрался.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 00:20     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка)
Еще ссылки по теме:

Сравнить содержание двоих текстовых файлов и вывести на экран номера строк в каких есть отличия C++
Задание: разработать "Интерпретатор языка". С чего начать? C++
C++ На каких перегонах (то есть между какими соседними станциями) в поезде было наименьшее число пассажиров

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

Или воспользуйтесь поиском по форуму:
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
22.05.2013, 00:20     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка) #10
lexus_ilia, ну мне кажется это довольно логично
Yandex
Объявления
22.05.2013, 00:20     Знание языка C++ тест, одно задание (казать в каких строчках есть ошибка)
Ответ Создать тему
Опции темы

Текущее время: 15:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru