C ++,Shared_ptr,请告诉我为什么我的代码给出错误?

编码器

出现错误-

1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\memory(1143,17): message : could be 'std::shared_ptr<int> &std::shared_ptr<int>::operator =(std::shared_ptr<int> &&) noexcept'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\memory(1132,17): message : or       'std::shared_ptr<int> &std::shared_ptr<int>::operator =(const std::shared_ptr<int> &) noexcept'
1>E:\VS\HelloWorld\HelloWorld\main.cpp(14,10): message : while trying to match the argument list '(std::shared_ptr<int>, int *)'
1>Done building project "HelloWorld.vcxproj" -- FAILED.
#include <iostream>
#include <vector>
#include <algorithm>
#include<string>
#include  <memory>

using namespace std;

int main()
{
    shared_ptr<int> ptr = make_shared<int>();
    int l = 10;
    ptr = &l;
    cout << (*ptr) << endl;

    cin.get();
}
G.睡觉

仅允许您分配另一个std::shared_ptr<>std::unique_ptr<>类型的变量std::shared_ptr<>,请参见的文档。std::shared_ptr<>::operator=()这可以防止在分配未分配到堆上的指针的错误,就像您尝试在代码中那样。

请注意,您对的调用std::make_shared<int>()已经为分配了内存int,那么为什么不使用它呢?

std::shared_ptr<int> ptr = std::make_shared<int>();
*ptr = 10;
std::cout << *ptr << '\n';

您甚至可以写得短一些,避免重复:

auto ptr = std::make_shared<int>(10);
std::cout << *ptr << '\n';

如果您确实要为分配另一个指针ptr,则应确保该指针也是共享的或唯一的,如下所示:

std::shared_ptr<int> ptr;
std::shared_ptr<int> l;
*l = 10;
ptr = l;
std::cout << *ptr << '\n';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么C告诉我我需要一个指向MSP430函数的指针

有人告诉我我的C程序是“硬编码的”,我不明白为什么

谁能告诉我为什么我的代码显示的pi值错误?

为什么我的C代码计算错误

C ++为什么原始指针不会增加shared_ptr的引用计数?

c ++ std :: shared_ptr错误C2664

我的代码抛出错误[致命错误:主要]您能告诉我为什么吗?

为什么我的C代码产生错误的结果?

为什么我可以在C ++中将常量shared_ptr分配给非常量shared_ptr?

请谁能告诉我为什么输出是这样的?(蟒蛇)

pygame跳跃系统出现问题。请告诉我我的代码有什么问题

为什么我的C ++并行程序在MPI_Gather中给出MPI致命错误?

在C ++线程中,我应该按值或引用传递shared_ptr吗?

为什么sudo告诉我密码错误?

谁能告诉我这段代码在C#中到底意味着什么?

我可以告诉我是否实现了C ++虚函数

谁能告诉我为什么我在此C代码中出现分段错误?

谁能告诉我这一段C#代码中的错误到底在哪里?

为什么我的代码为变量给出错误的值?

为什么我们使用此代码请谁能告诉我

有人能告诉我为什么这不起作用吗?C# XNA

请告诉我为什么它错了(LCM & GCD)

请告诉我为什么 c 代码的行为方式如此详细?

为什么我的 C++ 代码显示分段错误

请告诉我为什么此代码不起作用

谁能告诉我为什么我的代码将我的 Z 数组返回为 0?(CUDA C)

如何在C语言中调用另一个用户定义函数中的用户定义函数?这个程序有错误...请告诉我那是什么?

为什么我的 C 程序给出错误:警告:函数“回文”的隐式声明 [-Wimplicit-function-declaration]

有人可以告诉我这有什么问题吗?是的,我刚开始学习 c#

TOP 榜单

热门标签

归档