Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2009, 23:32   #41
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Код:
preci.cpp:166: fatal error: error writing to /tmp/cc6RVFlf.s: No space left on device
compilation terminated.
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 11:45   #42
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

//newt.h
Код:
class newt

{
public:
//указател:
  interface *func = new interface;
  interface *jacobian = new interface;
  sortie *print = new sortie;
//объявляем тип указателя:
  void (interface::*nrfuncv)(int nn, std::vector <double> v, std::vector <double> f);
  void (interface::*jacobfunc)(std::vector <double> v, std::vector <double> f, std::vector < std::vector<double> > J);

  void (sortie::*on_subproduct)();//Function of a conclusion of intermediate results}
//newt.cpp
Код:
double newt::fmin(std::vector <double> x)
{
//с помощью объекта вызываем функцию-член, адрес который хранится в pt  
(func->*pt)(GetN(), x, fvec);}
Код:
void newt::calc(std::vector <double> x, int *check)

{
   (func->*pt)(nn, x, f);

      std::vector < std::vector<double> > J(nn);
      for(int i = 0 ; i < J.size() ; i++)
      {
       J[i].resize(nn);
      } 
      (jacobian->*pf)(x,f,J);}
//main.cpp
//создаём объект этого типа и инициализируем его:
Код:
int main(){
while(mat.produit[i]!=NULL)
         {
 nt.func=mat.produit[1]->frontiere[1];
 nt.nrfuncv pt= &interface::equilibre_Fe_Cr_C; 
 
 nt.jacobian=mat.produit[1]->frontiere[1];
 nt.jacobfunc pf= &interface::Jacobian;
  i++;
   }

Код:
newt.h:21: error: `new' cannot appear in a constant-expression
newt.h:21: error: ISO C++ forbids initialization of member 'func'
newt.h:21: error: making 'func' static
newt.h:33: error: 'func' was not declared in this scope
newt.h:34: error: 'jacobian' was not declared in this scope
newt.h:35: error: 'print' was not declared in this scope
newt.cpp:177: error: 'func' was not declared in this scope
newt.cpp:184: error: 'jacobian' was not declared in this scope
newt.cpp:216: error: 'print' was not declared in this scope
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 11:46   #43
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Что я опять не так сделала?
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 12:11   #44
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Нельзя так создавать объекты в классе. Все эти new засуньте в конструктор (и удаление в деструктор соответственно) или просто:
Код:
interface func;
interface jacobian;
sortie print;
и тогда вё само будет создаватсья и уничтожаться, но придется в коде поменять -> на . )
pu4koff вне форума Ответить с цитированием
Старый 24.04.2009, 12:24   #45
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Код:
newt.cpp: In member function 'double newt::fmin(std::vector<double, std::allocator<double> >)':
newt.cpp:126: error: no match for 'operator==' in '((newt*)this)->newt::func == 0'
preci.cpp: In function 'int main()':
preci.cpp:62: error: no match for 'operator=' in 'nt.newt::func = mat.matrice::<anonymous>.phase::produit[1]->phase::frontiere[1]'
phase.hpp:133: note: candidates are: interface& interface::operator=(const interface&)
preci.cpp:66: error: no match for 'operator=' in 'nt.newt::jacobian = mat.matrice::<anonymous>.phase::produit[1]->phase::frontiere[1]'
phase.hpp:133: note: candidates are: interface& interface::operator=(const interface&)
preci.cpp:85: error: no match for 'operator=' in 'nt.newt::print = & so'
donnees.cpp:31: note: candidates are: sortie& sortie::operator=(const sortie&)
В конструкторе ничего нет. -> заменила на .
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 12:28   #46
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Тогда, логична, что эта строчка не работает и я не могу указать путь
Код:
int main()
{
newt nt;
nt.func=mat.produit[1]->frontiere[1];
}
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 12:33   #47
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

И тут же выдает без этой строчки: segmentation fault . Потому что не видит путь
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 12:41   #48
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Эх. Не работает.
Код:
class newt

{public:
  interface *func;
  interface *jacobian;
  sortie *print;

  //we declare index type:
  void (interface::*nrfuncv)(int nn, std::vector <double> v, std::vector <double> f);
  void (interface::*jacobfunc)(std::vector <double> v, std::vector <double> f, std::vector < std::vector<double> > J);

  void (sortie::*on_subproduct)();//Function of a conclusion of intermediate results
  newt() //Konstruktor
  {
  interface *func = new interface;
  interface *jacobian = new interface;
  sortie *print = new sortie;
  }

  ~newt()
  {
   delete func;
   delete jacobian;
   delete print; 
  }}
И оставила путь
ciaonataha вне форума Ответить с цитированием
Старый 24.04.2009, 12:57   #49
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Компилируется, но не работает?
Зачем в конструкторе создавать что-то, если потом всё равно "затираете" это новым объектом и в итоге получаете утечку памяти и в конструкторе удаляете уже то, что передали? Мне кажется, что Ваша программа - одно сплошное UB, т.е. неопределённое поведение
pu4koff вне форума Ответить с цитированием
Старый 24.04.2009, 13:07   #50
ciaonataha
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 150
По умолчанию

Да, компилируется, но выдает:
segmentation fault
Я здесь себе репу и чешу, чтобы сделать мою модель контролируемой.
У меня опыта в объектно-ориентированном программировании 6 месяцев без лекции и предварительного образования на это. Я не плачусь вовсе. Просто пытаюсь заниматься самообразованием
ciaonataha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делает команда Run.Detach From Program? JY_ Общие вопросы Delphi 3 20.01.2009 13:58
program Project1; необходимо перенести из Pascal в Delphi Toxass Общие вопросы Delphi 22 24.11.2008 08:53
Install (Update program) MAcK Общие вопросы .NET 0 23.10.2008 11:00
Узнать Received XAOC-forever Работа с сетью в Delphi 0 30.09.2008 14:49
Copy Program с изменением атрибутов Трофимов Андрей Паскаль, Turbo Pascal, PascalABC.NET 3 04.07.2007 20:10