Autor
|
Tema: Duda de sintaxis.. (Leído 2,276 veces)
|
digimikeh
Desconectado
Mensajes: 191
|
Hola! Entiendo que el operador de resolución de ámbito :: conecta un namespace con otro namespace o con una clase o con un método que esté dentro de un namespace específico... sin embargo, estoy viendo esto en Visual C++ y me asaltó la duda: System::Windows::Forms::Application::Run(gcnew Prototipo::MyForm());
Entiendo que System es un namespace, pero que serían Windows, Forms, Application y Run en este caso? No estoy seguro pero me da la idea de que desde System hasta Application son namespace y Run es una función... pero quisiera estar seguro. Gracias saludos.
|
|
|
En línea
|
Dungeons & dragons; dragons.Attack();
|
|
|
|
RayR
Desconectado
Mensajes: 243
|
Ojo, que eso no es C++. Es C++/CLI, que, a pesar de lo que el nombre pueda dar a entender, es otro lenguaje diferente, creado por Microsoft, para .NET, y como con todos los lenguajes de esa plataforma, el código generado es no nativo (aunque se puede mezclar C++/CLI con C++ nativo), y la memoria la maneja el garbage collector . En resumen, es un lenguaje .NET, como C# y VB.NET, que se parece mucho a C++, y nada más.
|
|
|
En línea
|
|
|
|
digimikeh
Desconectado
Mensajes: 191
|
Gracias por las aclaraciones
Si, me he dado cuenta que es un tipo manejado de cpp.
Entonces Application es una clase, pero, porque se llama a la función estática Run() de esa forma?
Application::Run();
Pense que los métodos se llamaban solo de dos formas:
Appication.Run()
o
Application->Run();
|
|
|
En línea
|
Dungeons & dragons; dragons.Attack();
|
|
|
digimikeh
Desconectado
Mensajes: 191
|
Creo entender, ustedes me corrigen... tendría que llamar a una función con el punto si esta siendo referenciada por una variable común y corriente.. o con el operador -> si fuera referenciada por un puntero.. pero Run() al ser estatica, no existe una instancia a ella, por eso no se usa ni punto ni ->, directamente el operador :: namespace Stuffs{
class UnaCosa{
static bool getTrue() const { return true; } }; }
int main (){
bool unaExpresion = Stuffs::UnaCosa::getTrue(); //una instancia a UnaCosa Stuffs::UnaCosa unaCosa; unaCosa.getTrue(); //Esto deberia dar error verdad?
//puntero Stuffs::UnaCosa * p_unaCosa = new Stuffs::UnaCosa; p_unaCosa->getTrue(); //Esto tambien deberia dar error, si?
}
saludos y gracias.
|
|
|
En línea
|
Dungeons & dragons; dragons.Attack();
|
|
|
Loretz
Desconectado
Mensajes: 117
|
No puedo decirte cómo son las reglas del C++/CLI, que ignoro olímpicamente, pero te comento para el C++ (sobreescribo tu ejemplo): namespace Stuffs { class UnaCosa { public: ///< En C++ getTrue debe ser public para que pueda ser accedida desde fuera. static bool getTrue() /*const*/ { ///< En C++ una funcion miembro static no puede tener calificador de tipo return true; } }; } int main() { bool unaExpresion = Stuffs::UnaCosa::getTrue(); //una instancia a UnaCosa Stuffs::UnaCosa unaCosa; unaCosa.getTrue(); //Esto deberia dar error verdad? ///< En C++ es una expresion valida, equivalente a Stuffs::UnaCosa::getTrue(); //puntero Stuffs::UnaCosa* p_unaCosa = new Stuffs::UnaCosa; p_unaCosa->getTrue(); //Esto tambien deberia dar error, si? ///< En C++ es una expresion valida, equivalente a Stuffs::UnaCosa::getTrue(); }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda con un par de elementos de la sintaxis.
PHP
|
ZHOSS-9
|
2
|
1,899
|
22 Diciembre 2011, 00:45 am
por ZHOSS-9
|
|
|
Duda en sintaxis de C
Programación C/C++
|
the_jocker
|
8
|
4,099
|
5 Abril 2012, 03:21 am
por farresito
|
|
|
Duda python (error de sintaxis)
Scripting
|
amchacon
|
5
|
4,494
|
1 Julio 2013, 20:16 pm
por tincopasan
|
|
|
[DUDA]Transformar Sintaxis Oracle SQL a MySQL
Bases de Datos
|
blackyer94
|
2
|
2,847
|
16 Abril 2015, 21:09 pm
por fran800m
|
|
|
Duda con la sintaxis en C (usando code::blocks) -- solucionado, gracias;
Programación C/C++
|
Naslednik
|
7
|
3,907
|
20 Abril 2015, 00:23 am
por Naslednik
|
|