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

Expected constructor, destructor, or type conversion before '.' token - C++

Восстановить пароль Регистрация
 
 
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
29.10.2013, 15:02     Expected constructor, destructor, or type conversion before '.' token #1
C++
1
2
3
4
5
6
7
8
9
10
struct Gf3 {
    GLfloat x;
    GLfloat y;
    GLfloat z;
} p1,p2,p3,t;
 
t.x = 0.0; t.y = 0.0; t.z = 1.0;
p1.x = 0.0; p1.y = 0.942809; p1.z = -0.333333;
p2.x = -0.816497; p2.y = -0.471405; p2.z = -0.333333;
p3.x = 0.816497; p3.y = -0.471405; p3.z = -0.333333;
Ошибки на строчках с присваиванием.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2013, 15:02     Expected constructor, destructor, or type conversion before '.' token
Посмотрите здесь:

C++ expected unqualified-id before '{' token
C++ expected unqualified id before '{' token
C++ Ошибка: forbids declaration of 'magic' with no type expected ';' before '.' token
C++ Ошибка "expected constructor, destructor, or type conversion"
C++ Ошибка expected constructor, destructor, or type conversion before ';' token
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.10.2013, 16:19     Expected constructor, destructor, or type conversion before '.' token #21
Цитата Сообщение от Hunter13ua Посмотреть сообщение
Равноценно
с точки зрения набора инструкций на АСМ да.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
29.10.2013, 16:26     Expected constructor, destructor, or type conversion before '.' token #22
MrGluck, почему просто в с++ и в visual c++ разные стандарты?
http://develab.narod.ru/cpp/96.htm
тут написано,что в visual не важно где что писать
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.10.2013, 16:57     Expected constructor, destructor, or type conversion before '.' token #23
Цитата Сообщение от metaluga145 Посмотреть сообщение
MrGluck, почему просто в с++ и в visual c++ разные стандарты?
ничего подобного там нет.
Переменные, которые объявлены вне всех блоков и классов (о классах речь пойдет позже), называются глобальными, и они имеют глобальную область видимости (которая также называется областью видимости глобального пространства имен или областью видимости файла). Это значит, что они доступны всем функциям в файле, начиная с точки, где они были объявлены. Если вы объявляете их в самом начале ваше программы, то они будут доступны в любом месте файла.

Глобальные переменные также по умолчанию имеют статическое время жизни. Глобальные переменные со статическим временем жизни существуют с момента начала выполнения программы и до момента ее завершения. Если вы не специфицируете начальное значение глобальной переменной, то по умолчанию она инициализируется нулем. Инициализация глобальных переменных происходит перед началом выполнения функции main(), поэтому они всегда доступны в любой части кода, находящейся внутри области видимости переменной.
Где здесь противоречащие факторы? Да, они будут доступны, но это всего лишь значит, что компилятор уже будет знать, чем является t, например. Иначе он просто сказал бы, что t не объявлено. Про точный порядок инициализации и выполнения инструкций до main ничего не сказано.

На самом деле, меня не туда понесло.
Писать инструкции вне блоков функции нельзя в принципе. Сейчас скину ссыль со стандарта. Но про порядок инициализации все остается в силе, хоть и не по теме.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
29.10.2013, 17:08     Expected constructor, destructor, or type conversion before '.' token #24
MrGluck, просто я в своем проекте писал за пределами функций HWND hWnd = NULL; и не получал никаких предупреждений)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
29.10.2013, 17:33     Expected constructor, destructor, or type conversion before '.' token #25
Точка начала выполнения инструкций в программе - main.
3.6.1.1 A program shall contain a global function called main, which is the designated start of the program.
то, про что я хотел сказать, но не в тему и не тот случай.
3.6.2.3 3 An implementation is permitted to perform the initialization of a non-local variable with static storage
duration as a static initialization even if such initialization is not required to be done statically, provided
that
— the dynamic version of the initialization does not change the value of any other object of namespace
scope prior to its initialization, and
— the static version of the initialization produces the same value in the initialized variable as would be
produced by the dynamic initialization if all variables not required to be initialized statically were
initialized dynamically.
— [ Note: As a consequence, if the initialization of an object obj1 refers to an object obj2 of namespace
scope potentially requiring dynamic initialization and defined later in the same translation unit, it is
unspecified whether the value of obj2 used will be the value of the fully initialized obj2 (because obj2
was statically initialized) or will be the value of obj2 merely zero-initialized. For example,
C++
1
2
3
4
5
6
inline double fd() { return 1.0; }
extern double d1;
double d2 = d1; // unspecified:
// may be statically initialized to 0.0 or
// dynamically initialized to 1.0
double d1 = fd(); // may be initialized statically to 1.0
—end note ]
насчет обязательства писать инструкции внутри функций в стандарте правила не нашел, но это следует из логики выполнения программы: до main ничего (инструкции) не выполняется.

Добавлено через 1 минуту
Цитата Сообщение от metaluga145 Посмотреть сообщение
HWND hWnd = NULL;
это объявление имеет право на жизнь потому что фактически оператор присвоений трансформируется в конструктор копий.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
30.10.2013, 08:51     Expected constructor, destructor, or type conversion before '.' token #26
Цитата Сообщение от metaluga145 Посмотреть сообщение
что-что? поясните)
Что вам обьяснить то? Есть функция myInit, в ней нужно написать инициализации членов структуры.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2013, 09:46     Expected constructor, destructor, or type conversion before '.' token
Еще ссылки по теме:

Expected unqualified-id before '<' token C++
Error: expected ')' before ';' token C++
Ошибка expected constructor, destructor, or type conversion before '(' toke C++

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

Или воспользуйтесь поиском по форуму:
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
30.10.2013, 09:46     Expected constructor, destructor, or type conversion before '.' token #27
programina, Вы не поняли суть вопроса, но это уже не важно!
Yandex
Объявления
30.10.2013, 09:46     Expected constructor, destructor, or type conversion before '.' token
Ответ Создать тему
Опции темы

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