我在c ++中使用Windows窗体,因为我想使用get和set方法将文本框和combox的变量存储到名为 uVariables 的类中。我在c#中开发了相同的其他特性,但现在用c ++调试我发现变量没有存储。
例如: 我想使用:
存储范例变量uVariables.h 标题文件:
#include <stdlib.h>
#include <iostream>
class uVariables
{
public:
const char* paradigm;
uVariables();
~uVariables();
void setParadigm(const char * p);
const char * getParadigm();
};
uVariables.cpp 源文件:
#include "uVariables.h"
uVariables::uVariables(){}
void uVariables::setParadigm(const char * p) {
paradigm = p;
}
const char * uVariables::getParadigm() {
return paradigm;
}
uVariables::~uVariables(){}
然后,将其用于从Windows窗体应用程序的头文件到按钮:
来自MyForm.h(取自设计模式)
#include "uVariables.h"
.
.
.
private: System::Void btn_start_Click(System::Object^ sender, System::EventArgs^ e) {
uVariables variables = new uVariables() // Here I have troubles
}
但是当我想制作这个对象时,它会出错,说没有合适的构造函数可以转换为&#34; uVariables *&#34;到&#34; uVariables&#34;
答案 0 :(得分:0)
首先,这不是C ++,它是Microsoft的专有语言C ++ / CLI,因此标准C ++实践可能适用也可能不适用。
其次,在C ++中,你很少想要创建一个类成员(或其他类似的东西:
someclass * s = new someclass();
你几乎总是只想说:
someclass s;
在类定义中,然后只需让编译器为您创建实例。所以:
class A {
someclass s;
};
然后:
A a; // someclass instance will be created (and disposed of) for you