视觉效果++从主打印并继承列表框中的视觉形式

发布于 2024-10-18 03:03:00 字数 319 浏览 3 评论 0原文

我创建了一个“主”类,我们称之为 A(Veichle), 我有两个继承自 A 的类,我们称它们为 B(Car) 和 C(MC)。 我还有一个处理程序,我们称之为“D”,它绑定 A、B 和 C。 然后我有 Form1 类,让我们调用 E(Visual)

我想在列表框中的可视形式“E”上打印 A 中的私有成员

如果我尝试 ex)

this->listbox1->items->; add(X.veichles[i]->getBrand());

它抱怨 veichles 是 D 中的私人成员。

我该如何解决这个问题?

I´ve made a "main" class lets call it A(Veichle),
and i have two classes that inherits from A Lets call them B(Car) and C(MC).
i also have a handler lets call it "D" that binds A,B and C.
Then i have the Form1 class lets call that E(Visual)

I want to print out the private members from A on the visual form "E" in a Listbox

If i try ex)

this->listbox1->items->add(X.veichles[i]->getBrand());

it complains that veichles is a private member in D.

How can i get around that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

野稚 2024-10-25 03:03:00

private 的意思就是不允许其他类访问。

您应该创建一个公共访问器函数。例如,GetVehicleByIndex(int idx)

您的代码将如下所示:

A* pVehicle = X.GetVehicleByIndex(i);
if (pVehicle) // assuming NULL indicates error
    add(pVehicle->getBrand());
else
    // react on error

The private means exactly that the access is not allowed for other classes.

You should create a public accessor function. For example, GetVehicleByIndex(int idx).

Your code will look like this:

A* pVehicle = X.GetVehicleByIndex(i);
if (pVehicle) // assuming NULL indicates error
    add(pVehicle->getBrand());
else
    // react on error
鱼忆七猫命九 2024-10-25 03:03:00

那我就可以回答我自己的问题了。

在与 form1.h 通信的类中的 handler.cpp 中,创建一个函数:

void getPersonByIndex(i);

return this->person[i]->getSurName();

然后在 form1.h 中编写:

for(int i=0;i<this->getNrOfPersons;i++)

String^ str = new String(comm.getPersonByIndex(i)); //this conversion was my problem

this->listbox->beginupdate();
this->listbox->items->add(str);
this->listbox->endupdate();

I can answer my own question then.

Inside handler.cpp in the class class that communicates with form1.h, you create a function:

void getPersonByIndex(i);

return this->person[i]->getSurName();

Then in form1.h you write:

for(int i=0;i<this->getNrOfPersons;i++)

String^ str = new String(comm.getPersonByIndex(i)); //this conversion was my problem

this->listbox->beginupdate();
this->listbox->items->add(str);
this->listbox->endupdate();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文