gpt4 book ai didi

c++ - 指向具有显式构造函数的对象的指针

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:27 24 4
gpt4 key购买 nike

我正在尝试做这样的事情,但我一直收到错误:

class A {
public:
explicit A();
}

A * a = new A(); //results in: undefined reference to A()

我也试过:

A * a = A(); //results in cannot convert A to A * in assignment

有没有办法做到这一点?非常感谢您的帮助。

最佳答案

在第一种情况下,问题与构造函数是显式这一事实无关,而是与您声明了它但未定义它这一事实有关。您得到的是来自链接器 的错误,而不是来自编译器的错误。试试这个:

 class A {
public:
explicit A() { /* Or anything more meaningful than just doing nothing */ }
};

在第二种情况下,这是行不通的。首先,因为您试图从类型为 A 的对象初始化指针(即类型为 A* 的变量)。其次,因为即使您做了稍微更有意义的事情:

A a = A();

这不会编译,因为 copy-initialization 不考虑 explicit 构造函数(使用 = 符号的初始化形式) .

关于c++ - 指向具有显式构造函数的对象的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116033/

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