У меня есть окна формы приложения 2 Текст box1,2 2 button1,2 я класс человек {есть получить, установить (строка, целое)} и я хочу объявить человека р ; , чтобы увидеть его как в двух нажатиях1,2, где я могу объявить класс OBJ
моя проблема в том, что я объявляю человек p; внутри кнопок, кнопки конец р ~ человек();. называется , так что я не могу сохранить значение,
и когда я называю p.get я получить начальное значение
код
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{person p;
//string str;
stringstr(constchar*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(textBox1->Text).ToPointer();
p.set(str,int ::Parse(textBox2->Text));
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{person p;
string str;
int ag;
p.get(str,ag);
Заявляю класс
class person
{
public:
person();// create initial value
~person();//descon
void set(string z,int a);//set value
void get(string &z,int &a);//get value
private:
string name;
int age ;
};
------------------------------------------------------------
person cpp
#include "StdAfx.h"
#include "person.h"
#include "stdafx.h"
using namespace std;
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
person::person()
{name="null";
age=-1;
}
person::~person()
{
}
void person::set(string z, int a)
{name=z;
age= a;
}
void person::get(string &z, int &a)
{z =name;
a=age;
}
Могу ли я загрузить все решения или нет?
Если вы отделите свой код четырьмя пробелами, он будет автоматически отформатирован для вас. Вы можете переформатировать свой код, чтобы его было легче читать. –
И, пожалуйста, не кладите код на ту же строку, что и открывающая скобка. Это затрудняет чтение. –
Этот код ОЧЕНЬ странный. 'string' в C++/CLI не является строкой .NET. Поскольку вы использовали 'using namespace std;', вы получили собственную строку в управляемом коде. Это нормально, если вы хотите повторно использовать существующий собственный код, но я не вижу никаких признаков этого. Почему бы не сделать 'person' a' ref class' и использовать 'System :: String ^' вместо 'std :: string'? Это позволит вам избавиться от уродливого вызова функции InteropServices. –