Código C++ en aplicaciones Objective-C Macintosh

  1. Software
  2. Código C++ en aplicaciones Objective-C Macintosh

Libro Relacionado

Por Karl G. Kowalski

Parte de la Lista de trucos de desarrollo de aplicaciones Mac para tontos

Objective-C proporciona funciones orientadas a objetos para el desarrollo de aplicaciones Macintosh, como herencia y polimorfismo. El lenguaje se basa en el lenguaje de programación C; por lo tanto, puede utilizar sus conocimientos de programación C para codificar dentro de Objective-C. Objective-C++ es un mecanismo puente que permite a los módulos fuente Objective-C trabajar con clases Objective-C++, que podrían compilar y enlazar con bibliotecas de código C++.

El siguiente ejemplo sencillo de una matriz cuadrada muestra el contenido de un archivo de cabecera C++ para una clase Matrix. La clase Matrix viene con el constructor y destructor estándar para una clase C++, y los métodos son los que usted esperaría para un objeto básico de matriz cuadrada:

clase Matriz{pública: Matrix( int inSize ); virtual ~Matrix(); int getSize( void); int getDeterminant( void); void setElement( int inRow, int inCol, int inValue); int getElement( int inRow, int inCol ); Matrix operator+( const Matrix& inAddend);private: int m_size; int[][][] m_elements;};

Para utilizar Objective-C++, los módulos de clase Objective-C++ deben utilizar la extensión de archivo.mm. Esto le indica al compilador de Xcode que la clase debe ser compilada usando Objective-C++, lo que le permitirá a su clase usar palabras clave del lenguaje C++. Usando Objective-C++, su aplicación podría crear un objeto Matrix para realizar operaciones básicas, como añadir dos objetos Matrix juntos. Esto asume que el módulo fuente Objective-C++ ha #importado el archivo C++ Matrix.h:

- (void)addTwoMatrices{ Matrix matrixOne( 3 ); // 3x3 matrix Matrix matrixTwo( 3 ); // another int rowIndex = 0; int colIndex = 0; for (rowIndex=0; rowIndex<3; ++rowIndex) { for (colIndex=0; colIndex<3; ++colIndex) { // set matrix one's elements to their values matrixOne.setElement( rowIndex, colIndex, XXX ); // set matrix two's elements to some other values matrixTwo.setElement( rowIndex, colIndex, YYY ); } } Matriz matrixSum = matrixOne + matrixTwo;

Con Objective-C++, sus aplicaciones pueden aprovechar todas las bibliotecas de terceros disponibles escritas para C++.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *