Usuário com melhor resposta
Sintaxe C++

Pergunta
-
Olá. Estou desenvolvendo uma DLL em C++ não gerenciado, e não consigo criar uma constante para a classe;
O código é:
class Colorimetria
{
public:
static const double tmp[3][3] = {
{+0.5767309, +0.1855540, +0.1881852},
{+0.2973769, +0.6273491, +0.0752741},
{+0.0270343, +0.0706872, +0.9911085}};
(...)
}
O erro está no sinal igual, "Error: data member initializer is not allowed". Mas então como vou definir constantes para a classe?
Obrigado.
- Movido AndreAlvesLima terça-feira, 26 de abril de 2011 13:04 (De:.NET Development - Geral)
Respostas
-
Segue um exemplo de uso do static :
// static2.cpp // compile with: /EHsc #include <iostream> using namespace std; class CMyClass { public: static int m_i; }; int CMyClass::m_i = 0; CMyClass myObject1; CMyClass myObject2; int main() { cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; myObject1.m_i = 1; cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; myObject2.m_i = 2; cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; CMyClass::m_i = 3; cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; }
Heber da Silva Moreira ASP.NET Developer- Marcado como Resposta Bruno Schmidt Marques terça-feira, 26 de abril de 2011 17:55
-
Sem problemas Bruno, voce pode fazer isso no construtor da classe, ou voce pode usar const tambem (se o valor nao for mais alterado) como no exemplo abaixo :
// constant_values1.cpp int main() { const int i = 5; i = 10; // C3892 i++; // C2105 }
Abs
Heber da Silva Moreira ASP.NET Developer- Marcado como Resposta Bruno Schmidt Marques terça-feira, 26 de abril de 2011 17:55
Todas as Respostas
-
-
Prezado(a),
Estou migrando seu post para o fórum de C++.
Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
Obrigado pelo apoio.
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
-
-
-
-
-
-
Segue um exemplo de uso do static :
// static2.cpp // compile with: /EHsc #include <iostream> using namespace std; class CMyClass { public: static int m_i; }; int CMyClass::m_i = 0; CMyClass myObject1; CMyClass myObject2; int main() { cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; myObject1.m_i = 1; cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; myObject2.m_i = 2; cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; CMyClass::m_i = 3; cout << myObject1.m_i << endl; cout << myObject2.m_i << endl; }
Heber da Silva Moreira ASP.NET Developer- Marcado como Resposta Bruno Schmidt Marques terça-feira, 26 de abril de 2011 17:55
-
-
Sem problemas Bruno, voce pode fazer isso no construtor da classe, ou voce pode usar const tambem (se o valor nao for mais alterado) como no exemplo abaixo :
// constant_values1.cpp int main() { const int i = 5; i = 10; // C3892 i++; // C2105 }
Abs
Heber da Silva Moreira ASP.NET Developer- Marcado como Resposta Bruno Schmidt Marques terça-feira, 26 de abril de 2011 17:55
-
Exemplos de uso do construtor :
http://msdn.microsoft.com/en-us/library/s16xw1a8(v=VS.90).aspx
Heber da Silva Moreira ASP.NET Developer -
-