2013-05-04 4 views
0

Спасибо для смотретьОтносительно создание типа класса NTL

Я пытаюсь создать класс

long lPrime,lGenerator; 
    lPrime = atol(vOut[1].c_str()); 
ZZ alicePrime; 
    alicePrime = new ZZ(99999,lPrime); 

Я не уверен, что делает INIT_VAL_TYPE просит меня вход.

Я получил эту ошибку:

UDPEchoClient.cpp:85:34: error: no matching function for call to ‘NTL::ZZ::ZZ(int, long int&)’ 
UDPEchoClient.cpp:85:34: note: candidates are: 
/sw/include/NTL/ZZ.h:113:1: note: NTL::ZZ::ZZ(NTL::ZZ&, NTL::INIT_TRANS_TYPE) 
/sw/include/NTL/ZZ.h:113:1: note: no known conversion for argument 1 from ‘int’ to ‘NTL::ZZ&’ 
/sw/include/NTL/ZZ.h:176:8: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, double) 
/sw/include/NTL/ZZ.h:176:8: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:180:8: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, float) 
/sw/include/NTL/ZZ.h:180:8: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:172:8: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, const char*) 
/sw/include/NTL/ZZ.h:172:8: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:61:1: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, unsigned int) 
/sw/include/NTL/ZZ.h:61:1: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:60:1: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, long unsigned int) 
/sw/include/NTL/ZZ.h:60:1: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:58:1: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, int) 
/sw/include/NTL/ZZ.h:58:1: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:57:1: note: NTL::ZZ::ZZ(NTL::INIT_VAL_TYPE, long int) 
/sw/include/NTL/ZZ.h:57:1: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_VAL_TYPE {aka const NTL::INIT_VAL_STRUCT&}’ 
/sw/include/NTL/ZZ.h:49:1: note: NTL::ZZ::ZZ(const NTL::ZZ&) 
/sw/include/NTL/ZZ.h:49:1: note: candidate expects 1 argument, 2 provided 
/sw/include/NTL/ZZ.h:37:1: note: NTL::ZZ::ZZ(NTL::INIT_SIZE_TYPE, long int) 
/sw/include/NTL/ZZ.h:37:1: note: no known conversion for argument 1 from ‘int’ to ‘NTL::INIT_SIZE_TYPE {aka const NTL::INIT_SIZE_STRUCT&}’ 
/sw/include/NTL/ZZ.h:33:1: note: NTL::ZZ::ZZ() 
/sw/include/NTL/ZZ.h:33:1: note: candidate expects 0 arguments, 2 provided 

ответ

0

Во-первых new неправильно. Вы не выделяете объект, вы строите объект.

Во-вторых, если предположить, что я читаю право заголовка файла, и предполагая, я понимаю, что вы пытаетесь сделать, вы просто хотите

ZZ alicePrime(INIT_VAL, lPrime); 

INTI_VAL это просто константа, которая заставляет компиляции выбрать конструктор что дает alicePrime начальное значение, а не, скажем, начальный размер бита.

Документация NTL оставляет желать лучшего.