| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Не работает простой код |
| Автор: satellite1977 3.11.2008, 10:51 | ||
| Ребята, почему не работает этот простой код? Причем если объявить переменную класса A в классе B, то все нормально.
возникают ошибки - 1>.\A.cpp(5) : error C2143: syntax error : missing ';' before '^' 1>.\A.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>.\A.cpp(5) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>.\A.cpp(20) : warning C4091: 'static ' : ignored on left of 'B' when no variable is declared |
| Автор: elbjarn 3.11.2008, 11:37 | ||
перенесите объявление класса В до объявления класса А. или сделайте форвард-дефинишн.
компилятор, встречая переменную класса B внутри класса А, еще не знает о существовании класса В. P.S. используйте правильную подсветку: "код с++" вместо "код c#" |
| Автор: satellite1977 4.11.2008, 11:07 | ||||
| Спасибо elbjarn форвард-дефинишн помог в случае, когда оба класса в одном файле. Я создаю проект CLR windows form в Visual studio C++, создаю новый класс. Файл One.h:
Файл One.cpp
Ошибка: 1>.\One.cpp(6) : error C2512: 'My1::Form1' : no appropriate default constructor available Несмотря на форвард-дефинишн компилятор пишет, что не видит конструктор класса Form1. Почему? |
| Автор: elbjarn 4.11.2008, 11:55 | ||||
| 1. добавьте в one.cpp инклуд для form1. 2. не вижу в вашем коде определения класса Form1. есть подозрение, что у Form1() действительно нет конструкторов по умолчанию (которые не принимают параметров).
|