将变量存储到一个类中以便在另一个类中使用,并在c ++

时间:2016-12-11 01:40:45

标签: winforms c++-cli

我在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;

1 个答案:

答案 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