Tengo una clase muy simple en n fichero llamado Numero.cpp
# include <iostream> using namespace std;
class Numero{ private: int n_valor; public: Numero(int valor_inicial); void setValor(int valor); int getValor(); };
Y ahora quiero instanciar esta clase en otro fichero cpp como debo hacerlo,probe con un include con la ruta entera del ficheropero me daba error
# include <iostream> # include <Numero.cpp>// Estan en el mismo directorio por eso lo puse asi pero tambien use la ruta absoluta y no funciono using namespace std;
int main(){ Numero n(5); cout <<n.getValor(); cin.get(); return 0; }
En el fichero de cabecera solo van los prototipos ?laa implementacion de los metodos iria en el otro fichero no?Estoy acostumbrado ajava y esto me lia un poco
zaius5 escribió:En el fichero de cabecera solo van los prototipos ?laa implementacion de los metodos iria en el otro fichero no?Estoy acostumbrado ajava y esto me lia un poco
Lo normal es que tengas un, por ejemplo numero.h con la definicion de la clase, un numero.cpp con la implementacion de la clase, sus metodos, vaya. y luego en otro sitio (puede ser el main.cpp o algun otro archivo) definas una variable del tipo "Numero" (con #include "numero.h" previamente, claro) y la uses ahi.
4eVaH
Chaos everywhere
3.857 mensajes desde jul 2006 en Mas a la Izquierda.
En el fichero de cabecera solo van los prototipos ?laa implementacion de los metodos iria en el otro fichero no?Estoy acostumbrado ajava y esto me lia un poco
Java es básicamente igual, sólo que aquí son ficheros de cabecera y en java interfaces.
Estaba empezando a trastear con visual studio(se que no correspond con el subforo de software libre pero para no abrir un hilo nuevo...) La cuestion es que genero uan ventana y cuando miro el codigo esta lleno de errores,y siempre con system como soy nuevo en c++ no se a que se debe a ver si alguien me lo dice ...el codigo no lo toque esgenerado por visual studio..
#pragma once
namespace proyecto2 {
using namespace System; //Todos los System me dan errror using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;
/// <summary> /// Resumen de ventana /// </summary> public ref class ventana : public System::Windows::Forms::Form { public: ventana(void) { InitializeComponent(); // //TODO: agregar código de constructor aquí // }
protected: /// <summary> /// Limpiar los recursos que se estén utilizando. /// </summary> ~ventana() { if (components) { delete components; } }
#pragma region Windows Form Designer generated code /// <summary> /// Método necesario para admitir el Diseñador. No se puede modificar /// el contenido del método con el editor de código. /// </summary> void InitializeComponent(void) { this->components = gcnew System::ComponentModel::Container(); this->Size = System::Drawing::Size(300,300); this->Text = L"ventana"; this->Padding = System::Windows::Forms::Padding(0); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; } #pragma endregion }; }
MichaelSOG
Adicto
144 mensajes desde sep 2011 en Guadalajara, Jal, México