gpt4 book ai didi

c++ - OOP C++、虚函数和新运算符

转载 作者:行者123 更新时间:2023-11-30 00:38:08 24 4
gpt4 key购买 nike

我必须在下面编写代码的定义。我不了解 OOP Cpp 的一些基础知识,我知道什么是 *x&x,但这还不够......主要的事实是我无法理解 行B* p = new D, m, *k; 我不明白 m*k 代表什么。

class B {
public:
virtual void msg() { cout << "classB"; }
};

class D: public B {
public:
virtual void msg() { cout << "classD"; }
};

int main() {
B* p = new D, m, *k;
p->msg(); k = &m; k->msg();
. . .
}

如果您能解释这段代码如何(以及为什么),请帮忙。

谢谢,抽出时间。

最佳答案

它一次声明多个变量。这与以下内容基本相同:

B *p = new D;
B m;
B *k;

所以p是一个指向分配了new的D实例的指针。 m 是类 B 的本地实例,k 是指向 B 的指针,稍后分配给指向m.

msg 函数通过指针 pk 在两个分配的对象上调用。

请注意,* 分别应用于每个变量声明。所以 B* a, b; 没有声明两个指针,而是声明了一个指针和一个本地对象。这就是为什么很多人更喜欢直接在变量名前面写 * 的原因:B *a, b 使这一点更加明显。

关于c++ - OOP C++、虚函数和新运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11695631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com