gpt4 book ai didi

c++ - 新的全局运营商,私有(private)客户和 friend

转载 作者:太空狗 更新时间:2023-10-29 20:28:44 26 4
gpt4 key购买 nike

在下面的代码中:

class A
{
A() {}
friend class B;
};

class B
{
public:
void foo() {A* p=new A;};
};


int main()
{
B b;
b.foo();

A* p = new A;

return 0;
}

函数 foo() 通过了编译,但是行 A* p = new A; 没有。怎么会这样? new 是一个全局运算符,因此它不能调用私有(private)构造函数,那么为什么编译器不报错 foo() 呢?

最佳答案

operator new 函数不调用构造函数。它只是分配所需的存储空间。

构造函数随后由编译器魔术调用,并被认为分别由 foomain 完成。

关于c++ - 新的全局运营商,私有(private)客户和 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12424469/

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