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

Почему выбивает ошибку в if(.); {.} else {.} - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сделать приложение универсальным http://www.cyberforum.ru/cpp-beginners/thread648388.html
Возник такой вопрос: я написал простую программу на с++ (у меня Win 7, IDE - VS 2010), перенес ее на другой компьютер с другой ОС (Win XP), попробовал запустить и получил ошибки "Невозможно запустить, не найдена такая-то dll". Насколько мне известно, с++ транслирует код непосредственно на машинный язык. Как можно создать приложение, которое будет работать на любой машине, независимо от наличия в...
C++ Класс С++ как разбить класс на отдельные заголовочные файлы? #include "stdafx.h" #include "cstdlib" #include <iostream> #include <conio.h> #include <windows.h> #include <stdio.h> #include <string.h> using namespace std; class Account { http://www.cyberforum.ru/cpp-beginners/thread648378.html
C++ Динамический список
пожалуйста если можно подскажите как создать динамический список в классе C++ (если можно с примером хотя бы маленьким)
C++ Об объявлениях функций и хорошем тоне
Здравствуйте. Как предпочтительней: void f() { /* do smt */ } int main() { f(); return 0; }
C++ Создать свой класс http://www.cyberforum.ru/cpp-beginners/thread648362.html
Помогите пожалуйста, сколько бьюсь уже не могу ничего найти что понятно мне будет... Как свой класс создать чтобы он хоть что-то делал, пусть хоть простые вычисления наподобие функции... #include <iostream> #include <string> struct ferst_struct{ int i=55; int j =256; int k=i+j; return k; };
C++ Ошибка undefined reference to `freetype::font_data::clean()' Компилятор MinGW g++ Lesson43.cpp -lopengl32 -lglu32 -llibfreetype -lwinmm -lgdi32 43 урок NeHe подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
08.09.2012, 00:49     Почему выбивает ошибку в if(.); {.} else {.}
> Почему выбивает ошибку в if(.); {.} else {.}?

Это самоочевидный вопрос. Зачем там точка с запятой?

Ну, точнее не совсем сразу очевидный. Дело в том, что после if должно идти so called полное выражение. Это или ноль и больше полных выражений в фигурных скобках, или одно выражение, за которым идёт точка с запятой. Само выражение может быть пустым. Поэтому if (...); {ABC} else {DEF} читается как
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (...) {
  // ничего не делать
}
 
{
  ABC
}
// это вполне легальное составное выражение:
// несколько полных выражений в фигурных скобках
 
// А вот тут компилятор не понял, какого чёрта else,
// ведь никакого if перед ним не было. Тот, что был,
// уже закончился из-за точки с запятой.
else {
  DEF
}
 
Текущее время: 21:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru